Adds one or more resources to an existing subscription. The subscription must be in an active state that is not pending other changes.
For subscriptions in the CloudFront plan family, the associated resources must include exactly one Amazon CloudFront distribution and one WAF web ACL. You can also include other supported resources, such as Amazon Route 53 hosted zones, and CloudFront KeyValueStores.
Parameters:
-
arn
(SubscriptionArn)
–
The ARN of the subscription to add resources to.
-
resource_arns
(ResourceArns)
–
The ARNs of the resources to add to the subscription.
-
if_match
(str)
–
The ETag value from a previous GetSubscription or ListSubscriptions response.
-
client_token
(Optional[IdempotencyToken], default:
None
)
–
A unique, case-sensitive identifier that you provide to ensure the request is handled only once.
Raises:
-
AccessDeniedException
–
You do not have the required permissions to perform this operation. Verify that your IAM policy grants access to this action.
-
ConflictException
–
The request conflicts with the current state of the resource. This typically occurs when the ETag value in the If-Match header does not match the current version of the subscription. Retrieve the latest version and retry.
-
InternalServerException
–
An unexpected error occurred on the server. Retry the request.
-
ResourceNotFoundException
–
The specified subscription was not found. Verify that the ARN is correct and that the subscription belongs to your account.
-
ThrottlingException
–
The request rate exceeds the allowed limit. Wait briefly and retry the request.
-
ValidationException
–
The request failed a business rule validation. For example, the specified resource might already be associated with another subscription, or the subscription might not be in the required state for this operation.
-
UnknownServiceError
–
The service returned an error code this client does not model.
Examples:
Associate additional resources to a subscription
>>> await client.associate_resources_to_subscription(arn='arn:aws:pricingplanmanager::123456789012:subscription/sub-1234567890', resource_arns=['arn:aws:route53:::hostedzone/Z0123456789EXAMPLE'], if_match='1')
Source code in docs_src/capo_pricing_plan_manager/_services/async_pricing_plan_manager.py
| async def associate_resources_to_subscription(
self,
arn: "capo_pricing_plan_manager.types.subscription_arn.SubscriptionArn",
resource_arns: "capo_pricing_plan_manager.types.resource_arns.ResourceArns",
if_match: str,
*,
config_overrides: Optional[AsyncPricingPlanManagerClientConfig] = None,
client_token: Optional[
"capo_pricing_plan_manager.types.idempotency_token.IdempotencyToken"
] = None,
) -> "capo_pricing_plan_manager.types.associate_resources_to_subscription_output.AssociateResourcesToSubscriptionOutput":
"""<p>Adds one or more resources to an existing subscription. The subscription must be in an active state that is not pending other changes.</p> <note> <p>For subscriptions in the CloudFront plan family, the associated resources must include exactly one Amazon CloudFront distribution and one WAF web ACL. You can also include other supported resources, such as Amazon Route 53 hosted zones, and CloudFront KeyValueStores.</p> </note>
Args:
arn: <p>The ARN of the subscription to add resources to.</p>
resource_arns: <p>The ARNs of the resources to add to the subscription.</p>
if_match: <p>The <code>ETag</code> value from a previous <code>GetSubscription</code> or <code>ListSubscriptions</code> response.</p>
client_token: <p>A unique, case-sensitive identifier that you provide to ensure the request is handled only once.</p>
Raises:
capo_pricing_plan_manager.errors.access_denied_exception.AccessDeniedException: <p>You do not have the required permissions to perform this operation. Verify that your IAM policy grants access to this action.</p>
capo_pricing_plan_manager.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource. This typically occurs when the <code>ETag</code> value in the <code>If-Match</code> header does not match the current version of the subscription. Retrieve the latest version and retry.</p>
capo_pricing_plan_manager.errors.internal_server_exception.InternalServerException: <p>An unexpected error occurred on the server. Retry the request.</p>
capo_pricing_plan_manager.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified subscription was not found. Verify that the ARN is correct and that the subscription belongs to your account.</p>
capo_pricing_plan_manager.errors.throttling_exception.ThrottlingException: <p>The request rate exceeds the allowed limit. Wait briefly and retry the request.</p>
capo_pricing_plan_manager.errors.validation_exception.ValidationException: <p>The request failed a business rule validation. For example, the specified resource might already be associated with another subscription, or the subscription might not be in the required state for this operation.</p>
capo_pricing_plan_manager.errors.UnknownServiceError: The service returned an error code this client does not model.
Examples:
Associate additional resources to a subscription
>>> await client.associate_resources_to_subscription(arn='arn:aws:pricingplanmanager::123456789012:subscription/sub-1234567890', resource_arns=['arn:aws:route53:::hostedzone/Z0123456789EXAMPLE'], if_match='1')
"""
async def _handler(
req: "AsyncOperationRequest[capo_pricing_plan_manager.types.associate_resources_to_subscription_input.AssociateResourcesToSubscriptionInput]",
) -> AsyncOperationResponse[
"capo_pricing_plan_manager.types.associate_resources_to_subscription_output.AssociateResourcesToSubscriptionOutput"
]:
import capo_pricing_plan_manager._operations.aws_pricing_plan_manager.associate_resources_to_subscription
(
output,
http_response,
) = await capo_pricing_plan_manager._operations.aws_pricing_plan_manager.associate_resources_to_subscription.async_associate_resources_to_subscription(
req.options, req.input
)
return AsyncOperationResponse(output=output, response=http_response)
interceptors_, options_ = self.operation_options(
config_overrides, OperationLogging("AssociateResourcesToSubscription")
)
input_: capo_pricing_plan_manager.types.associate_resources_to_subscription_input.AssociateResourcesToSubscriptionInput = {
"arn": arn,
"resource_arns": resource_arns,
"if_match": if_match,
}
if client_token is None:
client_token = str(uuid.uuid4())
input_["client_token"] = client_token
response = await aexecute_pipeline(
AsyncOperationRequest(input=input_, options=options_),
handler=_handler,
interceptors=list(interceptors_),
)
await response.response.aclose()
return response.output
|