Skip to content

create_facet async

create_facet(
    schema_arn: Arn,
    name: FacetName,
    *,
    config_overrides: Optional[AsyncCloudDirectoryClientConfig] = None,
    attributes: Optional[FacetAttributeList] = None,
    object_type: Optional[ObjectType] = None,
    facet_style: Optional[FacetStyle] = None,
) -> CreateFacetResponse

Creates a new Facet in a schema. Facet creation is allowed only in development or applied schemas.

Parameters:

  • schema_arn (Arn) –

    The schema ARN in which the new Facet will be created. For more information, see arns.

  • name (FacetName) –

    The name of the Facet, which is unique for a given schema.

  • attributes (Optional[FacetAttributeList], default: None ) –

    The attributes that are associated with the Facet.

  • object_type (Optional[ObjectType], default: None ) –

    Specifies whether a given object created from this facet is of type node, leaf node, policy or index.

    • Node: Can have multiple children but one parent.

    • Leaf node: Cannot have children but can have multiple parents.

    • Policy: Allows you to store a policy document and policy type. For more information, see Policies.

    • Index: Can be created with the Index API.

  • facet_style (Optional[FacetStyle], default: None ) –

    There are two different styles that you can define on any given facet, Static and Dynamic. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be defined during data plane operations.

Raises:

  • AccessDeniedException –

    Access denied or directory not found. Either you don't have permissions for this directory or the directory does not exist. Try calling ListDirectories and check your permissions.

  • FacetAlreadyExistsException –

    A facet with the same name already exists.

  • FacetValidationException –

    The Facet that you provided was not well formed or could not be validated with the schema.

  • InternalServiceException –

    Indicates a problem that must be resolved by Amazon Web Services. This might be a transient error in which case you can retry your request until it succeeds. Otherwise, go to the AWS Service Health Dashboard site to see if there are any operational issues with the service.

  • InvalidArnException –

    Indicates that the provided ARN value is not valid.

  • InvalidRuleException –

    Occurs when any of the rule parameter keys or values are invalid.

  • LimitExceededException –

    Indicates that limits are exceeded. See Limits for more information.

  • ResourceNotFoundException –

    The specified resource could not be found.

  • RetryableConflictException –

    Occurs when a conflict with a previous successful write is detected. For example, if a write operation occurs on an object and then an attempt is made to read the object using “SERIALIZABLE” consistency, this exception may result. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception.

  • ValidationException –

    Indicates that your request is malformed in some manner. See the exception message.

  • UnknownServiceError –

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

Examples:

To create a facet

>>> await client.create_facet(schema_arn='arn:aws:clouddirectory:us-west-2:45132example:directory/AYb8AOV81kHNgdj8mAO3dNY/schema/org/1', name='node1', object_type='NODE')
Source code in docs_src/capo_clouddirectory/_services/async_cloud_directory.py
async def create_facet(
    self,
    schema_arn: "capo_clouddirectory.types.arn.Arn",
    name: "capo_clouddirectory.types.facet_name.FacetName",
    *,
    config_overrides: Optional[AsyncCloudDirectoryClientConfig] = None,
    attributes: Optional[
        "capo_clouddirectory.types.facet_attribute_list.FacetAttributeList"
    ] = None,
    object_type: Optional[
        "capo_clouddirectory.types.object_type.ObjectType"
    ] = None,
    facet_style: Optional[
        "capo_clouddirectory.types.facet_style.FacetStyle"
    ] = None,
) -> "capo_clouddirectory.types.create_facet_response.CreateFacetResponse":
    """<p>Creates a new <a>Facet</a> in a schema. Facet creation is allowed only in development or applied schemas.</p>

    Args:
        schema_arn: <p>The schema ARN in which the new <a>Facet</a> will be created. For more information, see <a>arns</a>.</p>
        name: <p>The name of the <a>Facet</a>, which is unique for a given schema.</p>
        attributes: <p>The attributes that are associated with the <a>Facet</a>.</p>
        object_type: <p>Specifies whether a given object created from this facet is of type node, leaf node, policy or index.</p> <ul> <li> <p>Node: Can have multiple children but one parent.</p> </li> </ul> <ul> <li> <p>Leaf node: Cannot have children but can have multiple parents.</p> </li> </ul> <ul> <li> <p>Policy: Allows you to store a policy document and policy type. For more information, see <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies">Policies</a>.</p> </li> </ul> <ul> <li> <p>Index: Can be created with the Index API.</p> </li> </ul>
        facet_style: <p>There are two different styles that you can define on any given facet, <code>Static</code> and <code>Dynamic</code>. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be defined during data plane operations.</p>

    Raises:
        capo_clouddirectory.errors.access_denied_exception.AccessDeniedException: <p>Access denied or directory not found. Either you don't have permissions for this directory or the directory does not exist. Try calling <a>ListDirectories</a> and check your permissions.</p>
        capo_clouddirectory.errors.facet_already_exists_exception.FacetAlreadyExistsException: <p>A facet with the same name already exists.</p>
        capo_clouddirectory.errors.facet_validation_exception.FacetValidationException: <p>The <a>Facet</a> that you provided was not well formed or could not be validated with the schema.</p>
        capo_clouddirectory.errors.internal_service_exception.InternalServiceException: <p>Indicates a problem that must be resolved by Amazon Web Services. This might be a transient error in which case you can retry your request until it succeeds. Otherwise, go to the <a href="http://status.aws.amazon.com/">AWS Service Health Dashboard</a> site to see if there are any operational issues with the service.</p>
        capo_clouddirectory.errors.invalid_arn_exception.InvalidArnException: <p>Indicates that the provided ARN value is not valid.</p>
        capo_clouddirectory.errors.invalid_rule_exception.InvalidRuleException: <p>Occurs when any of the rule parameter keys or values are invalid.</p>
        capo_clouddirectory.errors.limit_exceeded_exception.LimitExceededException: <p>Indicates that limits are exceeded. See <a href="https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html">Limits</a> for more information.</p>
        capo_clouddirectory.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified resource could not be found.</p>
        capo_clouddirectory.errors.retryable_conflict_exception.RetryableConflictException: <p>Occurs when a conflict with a previous successful write is detected. For example, if a write operation occurs on an object and then an attempt is made to read the object using “SERIALIZABLE” consistency, this exception may result. This generally occurs when the previous write did not have time to propagate to the host serving the current request. A retry (with appropriate backoff logic) is the recommended response to this exception.</p>
        capo_clouddirectory.errors.validation_exception.ValidationException: <p>Indicates that your request is malformed in some manner. See the exception message.</p>
        capo_clouddirectory.errors.UnknownServiceError: The service returned an error code this client does not model.

    Examples:
        To create a facet

        >>> await client.create_facet(schema_arn='arn:aws:clouddirectory:us-west-2:45132example:directory/AYb8AOV81kHNgdj8mAO3dNY/schema/org/1', name='node1', object_type='NODE')
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_clouddirectory.types.create_facet_request.CreateFacetRequest]",
    ) -> AsyncOperationResponse[
        "capo_clouddirectory.types.create_facet_response.CreateFacetResponse"
    ]:
        import capo_clouddirectory._operations.amazon_cloud_directory_20170111.create_facet

        (
            output,
            http_response,
        ) = await capo_clouddirectory._operations.amazon_cloud_directory_20170111.create_facet.async_create_facet(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateFacet")
    )
    input_: capo_clouddirectory.types.create_facet_request.CreateFacetRequest = {
        "schema_arn": schema_arn,
        "name": name,
    }
    if attributes is not None:
        input_["attributes"] = attributes
    if object_type is not None:
        input_["object_type"] = object_type
    if facet_style is not None:
        input_["facet_style"] = facet_style

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