Skip to content

create_mesh

create_mesh(
    mesh_name: ResourceName,
    *,
    config_overrides: Optional[AppMeshClientConfig] = None,
    spec: Optional[MeshSpec] = None,
    tags: Optional[TagList] = None,
    client_token: Optional[str] = None,
) -> CreateMeshOutput

Creates a service mesh.

A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh.

For more information about service meshes, see Service meshes.

Parameters:

  • mesh_name (ResourceName) –

    The name to use for the service mesh.

  • spec (Optional[MeshSpec], default: None ) –

    The service mesh specification to apply.

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

    Optional metadata that you can apply to the service mesh to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.

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

    Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.

Raises:

  • BadRequestException –

    The request syntax was malformed. Check your request syntax and try again.

  • ConflictException –

    The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.

  • ForbiddenException –

    You don't have permissions to perform this action.

  • InternalServerErrorException –

    The request processing has failed because of an unknown error, exception, or failure.

  • LimitExceededException –

    You have exceeded a service limit for your account. For more information, see Service Limits in the App Mesh User Guide.

  • NotFoundException –

    The specified resource doesn't exist. Check your request syntax and try again.

  • ServiceUnavailableException –

    The request has failed due to a temporary failure of the service.

  • TooManyRequestsException –

    The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.

  • UnknownServiceError –

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

Source code in docs_src/capo_app_mesh/_services/app_mesh.py
def create_mesh(
    self,
    mesh_name: "capo_app_mesh.types.resource_name.ResourceName",
    *,
    config_overrides: Optional[AppMeshClientConfig] = None,
    spec: Optional["capo_app_mesh.types.mesh_spec.MeshSpec"] = None,
    tags: Optional["capo_app_mesh.types.tag_list.TagList"] = None,
    client_token: Optional[str] = None,
) -> "capo_app_mesh.types.create_mesh_output.CreateMeshOutput":
    """<p>Creates a service mesh.</p> <p> A service mesh is a logical boundary for network traffic between services that are represented by resources within the mesh. After you create your service mesh, you can create virtual services, virtual nodes, virtual routers, and routes to distribute traffic between the applications in your mesh.</p> <p>For more information about service meshes, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/meshes.html">Service meshes</a>.</p>

    Args:
        mesh_name: <p>The name to use for the service mesh.</p>
        spec: <p>The service mesh specification to apply.</p>
        tags: <p>Optional metadata that you can apply to the service mesh to assist with categorization and organization. Each tag consists of a key and an optional value, both of which you define. Tag keys can have a maximum character length of 128 characters, and tag values can have a maximum length of 256 characters.</p>
        client_token: <p>Unique, case-sensitive identifier that you provide to ensure the idempotency of the request. Up to 36 letters, numbers, hyphens, and underscores are allowed.</p>

    Raises:
        capo_app_mesh.errors.bad_request_exception.BadRequestException: <p>The request syntax was malformed. Check your request syntax and try again.</p>
        capo_app_mesh.errors.conflict_exception.ConflictException: <p>The request contains a client token that was used for a previous update resource call with different specifications. Try the request again with a new client token.</p>
        capo_app_mesh.errors.forbidden_exception.ForbiddenException: <p>You don't have permissions to perform this action.</p>
        capo_app_mesh.errors.internal_server_error_exception.InternalServerErrorException: <p>The request processing has failed because of an unknown error, exception, or failure.</p>
        capo_app_mesh.errors.limit_exceeded_exception.LimitExceededException: <p>You have exceeded a service limit for your account. For more information, see <a href="https://docs.aws.amazon.com/app-mesh/latest/userguide/service-quotas.html">Service Limits</a> in the <i>App Mesh User Guide</i>.</p>
        capo_app_mesh.errors.not_found_exception.NotFoundException: <p>The specified resource doesn't exist. Check your request syntax and try again.</p>
        capo_app_mesh.errors.service_unavailable_exception.ServiceUnavailableException: <p>The request has failed due to a temporary failure of the service.</p>
        capo_app_mesh.errors.too_many_requests_exception.TooManyRequestsException: <p>The maximum request rate permitted by the App Mesh APIs has been exceeded for your account. For best results, use an increasing or variable sleep interval between requests.</p>
        capo_app_mesh.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_app_mesh.types.create_mesh_input.CreateMeshInput]",
    ) -> OperationResponse[
        "capo_app_mesh.types.create_mesh_output.CreateMeshOutput"
    ]:
        import capo_app_mesh._operations.app_mesh.create_mesh

        output, http_response = (
            capo_app_mesh._operations.app_mesh.create_mesh.create_mesh(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateMesh")
    )
    input_: capo_app_mesh.types.create_mesh_input.CreateMeshInput = {
        "mesh_name": mesh_name
    }
    if spec is not None:
        input_["spec"] = spec
    if tags is not None:
        input_["tags"] = tags
    if client_token is None:
        client_token = str(uuid.uuid4())
    input_["client_token"] = client_token

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