Skip to content

update_traffic_policy async

update_traffic_policy(
    traffic_policy_id: TrafficPolicyId,
    *,
    config_overrides: Optional[AsyncMailManagerClientConfig] = None,
    traffic_policy_name: Optional[TrafficPolicyName] = None,
    policy_statements: Optional[PolicyStatementList] = None,
    default_action: Optional[AcceptAction] = None,
    max_message_size_bytes: Optional[MaxMessageSizeBytes] = None,
) -> UpdateTrafficPolicyResponse

Update attributes of an already provisioned traffic policy resource.

Parameters:

  • traffic_policy_id (TrafficPolicyId) –

    The identifier of the traffic policy that you want to update.

  • traffic_policy_name (Optional[TrafficPolicyName], default: None ) –

    A user-friendly name for the traffic policy resource.

  • policy_statements (Optional[PolicyStatementList], default: None ) –

    The list of conditions to be updated for filtering email traffic.

  • default_action (Optional[AcceptAction], default: None ) –

    Default action instructs the traffic policy to either Allow or Deny (block) messages that fall outside of (or not addressed by) the conditions of your policy statements

  • max_message_size_bytes (Optional[MaxMessageSizeBytes], default: None ) –

    The maximum message size in bytes of email which is allowed in by this traffic policy—anything larger will be blocked.

Raises:

Examples:

Update TrafficPolicy with new Name

>>> await client.update_traffic_policy(traffic_policy_id='tp-12345', traffic_policy_name='trafficPolicyNewName')
Update TrafficPolicy with new PolicyStatements
>>> await client.update_traffic_policy(traffic_policy_id='tp-12345', policy_statements=[{'Conditions': [{'StringExpression': {'Evaluate': {'Attribute': 'RECIPIENT'}, 'Operator': 'EQUALS', 'Values': ['[email protected]', '[email protected]']}}], 'Action': 'ALLOW'}])
Update TrafficPolicy with new DefaultAction
>>> await client.update_traffic_policy(traffic_policy_id='tp-12345', default_action='ALLOW')
Source code in docs_src/capo_mailmanager/_services/async_mail_manager.py
async def update_traffic_policy(
    self,
    traffic_policy_id: "capo_mailmanager.types.traffic_policy_id.TrafficPolicyId",
    *,
    config_overrides: Optional[AsyncMailManagerClientConfig] = None,
    traffic_policy_name: Optional[
        "capo_mailmanager.types.traffic_policy_name.TrafficPolicyName"
    ] = None,
    policy_statements: Optional[
        "capo_mailmanager.types.policy_statement_list.PolicyStatementList"
    ] = None,
    default_action: Optional[
        "capo_mailmanager.types.accept_action.AcceptAction"
    ] = None,
    max_message_size_bytes: Optional[
        "capo_mailmanager.types.max_message_size_bytes.MaxMessageSizeBytes"
    ] = None,
) -> "capo_mailmanager.types.update_traffic_policy_response.UpdateTrafficPolicyResponse":
    """<p>Update attributes of an already provisioned traffic policy resource.</p>

    Args:
        traffic_policy_id: <p>The identifier of the traffic policy that you want to update.</p>
        traffic_policy_name: <p>A user-friendly name for the traffic policy resource.</p>
        policy_statements: <p>The list of conditions to be updated for filtering email traffic.</p>
        default_action: <p>Default action instructs the traffic policy to either Allow or Deny (block) messages that fall outside of (or not addressed by) the conditions of your policy statements</p>
        max_message_size_bytes: <p>The maximum message size in bytes of email which is allowed in by this traffic policy—anything larger will be blocked.</p>

    Raises:
        capo_mailmanager.errors.conflict_exception.ConflictException: <p>The request configuration has conflicts. For details, see the accompanying error message.</p>
        capo_mailmanager.errors.resource_not_found_exception.ResourceNotFoundException: <p>Occurs when a requested resource is not found.</p>
        capo_mailmanager.errors.validation_exception.ValidationException: <p>The request validation has failed. For details, see the accompanying error message.</p>
        capo_mailmanager.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        Update TrafficPolicy with new Name

        >>> await client.update_traffic_policy(traffic_policy_id='tp-12345', traffic_policy_name='trafficPolicyNewName')
        Update TrafficPolicy with new PolicyStatements

        >>> await client.update_traffic_policy(traffic_policy_id='tp-12345', policy_statements=[{'Conditions': [{'StringExpression': {'Evaluate': {'Attribute': 'RECIPIENT'}, 'Operator': 'EQUALS', 'Values': ['[email protected]', '[email protected]']}}], 'Action': 'ALLOW'}])
        Update TrafficPolicy with new DefaultAction

        >>> await client.update_traffic_policy(traffic_policy_id='tp-12345', default_action='ALLOW')
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_mailmanager.types.update_traffic_policy_request.UpdateTrafficPolicyRequest]",
    ) -> AsyncOperationResponse[
        "capo_mailmanager.types.update_traffic_policy_response.UpdateTrafficPolicyResponse"
    ]:
        import capo_mailmanager._operations.mail_manager_svc.update_traffic_policy

        (
            output,
            http_response,
        ) = await capo_mailmanager._operations.mail_manager_svc.update_traffic_policy.async_update_traffic_policy(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateTrafficPolicy")
    )
    input_: capo_mailmanager.types.update_traffic_policy_request.UpdateTrafficPolicyRequest = {
        "traffic_policy_id": traffic_policy_id
    }
    if traffic_policy_name is not None:
        input_["traffic_policy_name"] = traffic_policy_name
    if policy_statements is not None:
        input_["policy_statements"] = policy_statements
    if default_action is not None:
        input_["default_action"] = default_action
    if max_message_size_bytes is not None:
        input_["max_message_size_bytes"] = max_message_size_bytes

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output