Skip to content

update_deployment async

update_deployment(
    deployment_identifier: DeploymentIdentifier,
    update_token: UpdateToken,
    is_published: IsPublished,
    *,
    config_overrides: Optional[AsyncNetworkSecurityManagerClientConfig] = None,
    deployment_description: Optional[Description] = None,
    deployment_configuration: Optional[DeploymentConfiguration] = None,
    associated_policy_list: Optional[PolicyReferenceList] = None,
    associated_scope_list: Optional[ScopeReferenceList] = None,
    client_token: Optional[IdempotencyToken] = None,
) -> UpdateDeploymentOutput

Updates the specified deployment. To prevent conflicting concurrent updates, provide the current updateToken. Use isPublished to publish the update or keep the deployment as a draft.

Parameters:

  • deployment_identifier (DeploymentIdentifier) –

    The identifier of the deployment. This is the deployment's Amazon Resource Name (ARN).

  • update_token (UpdateToken) –

    A token used for optimistic concurrency control. Each read and write returns an updateToken. Provide the most recent value on your next update to detect and prevent conflicting concurrent modifications.

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

    A description of the deployment.

  • deployment_configuration (Optional[DeploymentConfiguration], default: None ) –

    The configuration settings for the deployment.

  • associated_policy_list (Optional[PolicyReferenceList], default: None ) –

    The policies associated with the deployment.

  • associated_scope_list (Optional[ScopeReferenceList], default: None ) –

    The scope associated with the deployment. A deployment has exactly one scope.

  • is_published (IsPublished) –

    Specifies whether to publish the resource. When true, the resource is saved in published (ACTIVE) state. When false, it is saved as a draft (DRAFT).

  • client_token (Optional[IdempotencyToken], default: None ) –

    A unique, case-sensitive token that you provide to ensure that the operation completes no more than one time. If you retry a request with the same client token and the same parameters, the service returns the result of the original successful request.

Raises:

  • AccessDeniedException –

    You do not have sufficient permissions to perform this action.

  • ConflictException –

    The request conflicts with the current state of the resource. For example, the resource was modified concurrently, or it is in a state that does not allow the requested operation.

  • InternalServerException –

    The request processing failed because of an internal error in the service. This is a retryable error.

  • ResourceNotFoundException –

    The specified resource was not found. Verify that the resource identifier is correct and that the resource exists, then try your request again.

  • ServiceQuotaExceededException –

    The request would exceed a service quota.

  • ThrottlingException –

    The request was denied because of request throttling. Reduce your request rate and try again.

  • ValidationException –

    The request failed validation. For details, see the reason and fieldList members of the response.

  • UnknownServiceError –

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

Examples:

Update a deployment and publish it Updates the deployment's associations and publishes the change. The response includes deploymentCoverage showing which resource types the associated policies can protect. The updateToken from the most recent read is required for optimistic locking.

>>> await client.update_deployment(deployment_identifier='arn:aws:network-security-manager:us-east-1:123456789012:deployment:def456', update_token='f4a5b6c7-7d8e-4f9a-8b1c-1d2e3f4a5b6c', deployment_description='Production deployment for US East 1 region - updated', associated_policy_list=[{'policyIdentifier': 'arn:aws:network-security-manager:us-east-1:123456789012:policy:xyz789'}], associated_scope_list=[{'scopeIdentifier': 'arn:aws:network-security-manager:us-east-1:123456789012:scope:abc123'}], deployment_configuration={'enableCrossAccountVisibility': True}, is_published=True)
Source code in docs_src/capo_network_security_manager/_services/async_network_security_manager.py
async def update_deployment(
    self,
    deployment_identifier: "capo_network_security_manager.types.deployment_identifier.DeploymentIdentifier",
    update_token: "capo_network_security_manager.types.update_token.UpdateToken",
    is_published: "capo_network_security_manager.types.is_published.IsPublished",
    *,
    config_overrides: Optional[AsyncNetworkSecurityManagerClientConfig] = None,
    deployment_description: Optional[
        "capo_network_security_manager.types.description.Description"
    ] = None,
    deployment_configuration: Optional[
        "capo_network_security_manager.types.deployment_configuration.DeploymentConfiguration"
    ] = None,
    associated_policy_list: Optional[
        "capo_network_security_manager.types.policy_reference_list.PolicyReferenceList"
    ] = None,
    associated_scope_list: Optional[
        "capo_network_security_manager.types.scope_reference_list.ScopeReferenceList"
    ] = None,
    client_token: Optional[
        "capo_network_security_manager.types.idempotency_token.IdempotencyToken"
    ] = None,
) -> "capo_network_security_manager.types.update_deployment_output.UpdateDeploymentOutput":
    """<p>Updates the specified deployment. To prevent conflicting concurrent updates, provide the current <code>updateToken</code>. Use <code>isPublished</code> to publish the update or keep the deployment as a draft.</p>

    Args:
        deployment_identifier: <p>The identifier of the deployment. This is the deployment's Amazon Resource Name (ARN).</p>
        update_token: <p>A token used for optimistic concurrency control. Each read and write returns an <code>updateToken</code>. Provide the most recent value on your next update to detect and prevent conflicting concurrent modifications.</p>
        deployment_description: <p>A description of the deployment.</p>
        deployment_configuration: <p>The configuration settings for the deployment.</p>
        associated_policy_list: <p>The policies associated with the deployment.</p>
        associated_scope_list: <p>The scope associated with the deployment. A deployment has exactly one scope.</p>
        is_published: <p>Specifies whether to publish the resource. When <code>true</code>, the resource is saved in published (<code>ACTIVE</code>) state. When <code>false</code>, it is saved as a draft (<code>DRAFT</code>).</p>
        client_token: <p>A unique, case-sensitive token that you provide to ensure that the operation completes no more than one time. If you retry a request with the same client token and the same parameters, the service returns the result of the original successful request.</p>

    Raises:
        capo_network_security_manager.errors.access_denied_exception.AccessDeniedException: <p>You do not have sufficient permissions to perform this action.</p>
        capo_network_security_manager.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource. For example, the resource was modified concurrently, or it is in a state that does not allow the requested operation.</p>
        capo_network_security_manager.errors.internal_server_exception.InternalServerException: <p>The request processing failed because of an internal error in the service. This is a retryable error.</p>
        capo_network_security_manager.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource was not found. Verify that the resource identifier is correct and that the resource exists, then try your request again.</p>
        capo_network_security_manager.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed a service quota.</p>
        capo_network_security_manager.errors.throttling_exception.ThrottlingException: <p>The request was denied because of request throttling. Reduce your request rate and try again.</p>
        capo_network_security_manager.errors.validation_exception.ValidationException: <p>The request failed validation. For details, see the <code>reason</code> and <code>fieldList</code> members of the response.</p>
        capo_network_security_manager.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        Update a deployment and publish it
        Updates the deployment's associations and publishes the change. The response includes deploymentCoverage showing which resource types the associated policies can protect. The updateToken from the most recent read is required for optimistic locking.

        >>> await client.update_deployment(deployment_identifier='arn:aws:network-security-manager:us-east-1:123456789012:deployment:def456', update_token='f4a5b6c7-7d8e-4f9a-8b1c-1d2e3f4a5b6c', deployment_description='Production deployment for US East 1 region - updated', associated_policy_list=[{'policyIdentifier': 'arn:aws:network-security-manager:us-east-1:123456789012:policy:xyz789'}], associated_scope_list=[{'scopeIdentifier': 'arn:aws:network-security-manager:us-east-1:123456789012:scope:abc123'}], deployment_configuration={'enableCrossAccountVisibility': True}, is_published=True)
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_network_security_manager.types.update_deployment_input.UpdateDeploymentInput]",
    ) -> AsyncOperationResponse[
        "capo_network_security_manager.types.update_deployment_output.UpdateDeploymentOutput"
    ]:
        import capo_network_security_manager._operations.piccolo_customer_api_service.update_deployment

        (
            output,
            http_response,
        ) = await capo_network_security_manager._operations.piccolo_customer_api_service.update_deployment.async_update_deployment(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateDeployment")
    )
    input_: capo_network_security_manager.types.update_deployment_input.UpdateDeploymentInput = {
        "deployment_identifier": deployment_identifier,
        "update_token": update_token,
        "is_published": is_published,
    }
    if deployment_description is not None:
        input_["deployment_description"] = deployment_description
    if deployment_configuration is not None:
        input_["deployment_configuration"] = deployment_configuration
    if associated_policy_list is not None:
        input_["associated_policy_list"] = associated_policy_list
    if associated_scope_list is not None:
        input_["associated_scope_list"] = associated_scope_list
    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