Skip to content

update_container_association

update_container_association(
    type: ContainerMonitoringType,
    container_monitoring_configurations: ContainerMonitoringConfigurations,
    update_token: UpdateToken,
    *,
    config_overrides: Optional[NetworkFirewallClientConfig] = None,
    container_association_name: Optional[ResourceName] = None,
    container_association_arn: Optional[ResourceArn] = None,
    description: Optional[Description] = None,
    tags: Optional[TagList] = None,
) -> UpdateContainerAssociationResponse

Updates the monitoring configurations and description of a container association. You can't change the container type after creation. Provide an update token to enable optimistic concurrency control.

Parameters:

  • container_association_name (Optional[ResourceName], default: None ) –

    The descriptive name of the container association.

    You must specify the ARN or the name, and you can specify both.

  • container_association_arn (Optional[ResourceArn], default: None ) –

    The Amazon Resource Name (ARN) of the container association.

    You must specify the ARN or the name, and you can specify both.

  • description (Optional[Description], default: None ) –

    A description of the container association. When omitted, the existing description remains unchanged. To clear the description, pass an empty string.

  • type (ContainerMonitoringType) –

    The container type. This value must match the existing type and can't be changed. Valid values:

    • ECS - Amazon Elastic Container Service

    • EKS - Amazon Elastic Kubernetes Service

  • container_monitoring_configurations (ContainerMonitoringConfigurations) –

    The updated monitoring configurations for the container association. Each configuration specifies an Amazon ECS or Amazon EKS cluster to monitor and optional attribute filters.

  • tags (Optional[TagList], default: None ) –

    The key:value pairs to associate with the resource.

  • update_token (UpdateToken) –

    A token used for optimistic locking. Network Firewall returns a token to your requests that access the container association. The token marks the state of the container association resource at the time of the request.

    To make changes to the container association, you provide the token in your request. Network Firewall uses the token to ensure that the container association hasn't changed since you last retrieved it. If it has changed, the operation fails with an InvalidTokenException. If this happens, retrieve the container association again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.

Raises:

  • InternalServerError –

    Your request is valid, but Network Firewall couldn't perform the operation because of a system problem. Retry your request.

  • InvalidRequestException –

    The operation failed because of a problem with your request. Examples include:

    • You specified an unsupported parameter name or value.

    • You tried to update a property with a value that isn't among the available types.

    • Your request references an ARN that is malformed, or corresponds to a resource that isn't valid in the context of the request.

  • InvalidTokenException –

    The token you provided is stale or isn't valid for the operation.

  • ResourceNotFoundException –

    Unable to locate a resource using the parameters that you provided.

  • ThrottlingException –

    Unable to process the request due to throttling limitations.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_network_firewall/_services/network_firewall.py
def update_container_association(
    self,
    type: "capo_network_firewall.types.container_monitoring_type.ContainerMonitoringType",
    container_monitoring_configurations: "capo_network_firewall.types.container_monitoring_configurations.ContainerMonitoringConfigurations",
    update_token: "capo_network_firewall.types.update_token.UpdateToken",
    *,
    config_overrides: Optional[NetworkFirewallClientConfig] = None,
    container_association_name: Optional[
        "capo_network_firewall.types.resource_name.ResourceName"
    ] = None,
    container_association_arn: Optional[
        "capo_network_firewall.types.resource_arn.ResourceArn"
    ] = None,
    description: Optional[
        "capo_network_firewall.types.description.Description"
    ] = None,
    tags: Optional["capo_network_firewall.types.tag_list.TagList"] = None,
) -> "capo_network_firewall.types.update_container_association_response.UpdateContainerAssociationResponse":
    """<p>Updates the monitoring configurations and description of a container association. You can't change the container type after creation. Provide an update token to enable optimistic concurrency control.</p>

    Args:
        container_association_name: <p>The descriptive name of the container association.</p> <p>You must specify the ARN or the name, and you can specify both. </p>
        container_association_arn: <p>The Amazon Resource Name (ARN) of the container association.</p> <p>You must specify the ARN or the name, and you can specify both. </p>
        description: <p>A description of the container association. When omitted, the existing description remains unchanged. To clear the description, pass an empty string.</p>
        type: <p>The container type. This value must match the existing type and can't be changed. Valid values:</p> <ul> <li> <p> <code>ECS</code> - Amazon Elastic Container Service</p> </li> <li> <p> <code>EKS</code> - Amazon Elastic Kubernetes Service</p> </li> </ul>
        container_monitoring_configurations: <p>The updated monitoring configurations for the container association. Each configuration specifies an Amazon ECS or Amazon EKS cluster to monitor and optional attribute filters.</p>
        tags: <p>The key:value pairs to associate with the resource.</p>
        update_token: <p>A token used for optimistic locking. Network Firewall returns a token to your requests that access the container association. The token marks the state of the container association resource at the time of the request.</p> <p>To make changes to the container association, you provide the token in your request. Network Firewall uses the token to ensure that the container association hasn't changed since you last retrieved it. If it has changed, the operation fails with an <code>InvalidTokenException</code>. If this happens, retrieve the container association again to get a current copy of it with a current token. Reapply your changes as needed, then try the operation again using the new token.</p>

    Raises:
        capo_network_firewall.errors.internal_server_error.InternalServerError: <p>Your request is valid, but Network Firewall couldn't perform the operation because of a system problem. Retry your request. </p>
        capo_network_firewall.errors.invalid_request_exception.InvalidRequestException: <p>The operation failed because of a problem with your request. Examples include: </p> <ul> <li> <p>You specified an unsupported parameter name or value.</p> </li> <li> <p>You tried to update a property with a value that isn't among the available types.</p> </li> <li> <p>Your request references an ARN that is malformed, or corresponds to a resource that isn't valid in the context of the request.</p> </li> </ul>
        capo_network_firewall.errors.invalid_token_exception.InvalidTokenException: <p>The token you provided is stale or isn't valid for the operation. </p>
        capo_network_firewall.errors.resource_not_found_exception.ResourceNotFoundException: <p>Unable to locate a resource using the parameters that you provided.</p>
        capo_network_firewall.errors.throttling_exception.ThrottlingException: <p>Unable to process the request due to throttling limitations.</p>
        capo_network_firewall.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_network_firewall.types.update_container_association_request.UpdateContainerAssociationRequest]",
    ) -> OperationResponse[
        "capo_network_firewall.types.update_container_association_response.UpdateContainerAssociationResponse"
    ]:
        import capo_network_firewall._operations.network_firewall_20201112.update_container_association

        output, http_response = (
            capo_network_firewall._operations.network_firewall_20201112.update_container_association.update_container_association(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateContainerAssociation")
    )
    input_: capo_network_firewall.types.update_container_association_request.UpdateContainerAssociationRequest = {
        "type": type,
        "container_monitoring_configurations": container_monitoring_configurations,
        "update_token": update_token,
    }
    if container_association_name is not None:
        input_["container_association_name"] = container_association_name
    if container_association_arn is not None:
        input_["container_association_arn"] = container_association_arn
    if description is not None:
        input_["description"] = description
    if tags is not None:
        input_["tags"] = tags

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output