[ aws . clouddirectory ]



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

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.


--schema-arn <value>
--name <value>
[--attributes <value>]
[--object-type <value>]
[--facet-style <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]


--schema-arn (string)

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

--name (string)

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

--attributes (list)

The attributes that are associated with the Facet .


An attribute that is associated with the Facet .

Name -> (string)

The name of the facet attribute.

AttributeDefinition -> (structure)

A facet attribute consists of either a definition or a reference. This structure contains the attribute definition. See Attribute References for more information.

Type -> (string)

The type of the attribute.

DefaultValue -> (structure)

The default value of the attribute (if configured).

StringValue -> (string)

A string data value.

BinaryValue -> (blob)

A binary data value.

BooleanValue -> (boolean)

A Boolean data value.

NumberValue -> (string)

A number data value.

DatetimeValue -> (timestamp)

A date and time value.

IsImmutable -> (boolean)

Whether the attribute is mutable or not.

Rules -> (map)

Validation rules attached to the attribute definition.

key -> (string)

value -> (structure)

Contains an Amazon Resource Name (ARN) and parameters that are associated with the rule.

Type -> (string)

The type of attribute validation rule.

Parameters -> (map)

The minimum and maximum parameters that are associated with the rule.

key -> (string)

value -> (string)

AttributeReference -> (structure)

An attribute reference that is associated with the attribute. See Attribute References for more information.

TargetFacetName -> (string)

The target facet name that is associated with the facet reference. See Attribute References for more information.

TargetAttributeName -> (string)

The target attribute name that is associated with the facet reference. See Attribute References for more information.

RequiredBehavior -> (string)

The required behavior of the FacetAttribute .

Shorthand Syntax:

Name=string,AttributeDefinition={Type=string,DefaultValue={StringValue=string,BinaryValue=blob,BooleanValue=boolean,NumberValue=string,DatetimeValue=timestamp},IsImmutable=boolean,Rules={KeyName1={Type=string,Parameters={KeyName1=string,KeyName2=string}},KeyName2={Type=string,Parameters={KeyName1=string,KeyName2=string}}}},AttributeReference={TargetFacetName=string,TargetAttributeName=string},RequiredBehavior=string ...

JSON Syntax:

    "Name": "string",
    "AttributeDefinition": {
      "DefaultValue": {
        "StringValue": "string",
        "BinaryValue": blob,
        "BooleanValue": true|false,
        "NumberValue": "string",
        "DatetimeValue": timestamp
      "IsImmutable": true|false,
      "Rules": {"string": {
            "Parameters": {"string": "string"
    "AttributeReference": {
      "TargetFacetName": "string",
      "TargetAttributeName": "string"
    "RequiredBehavior": "REQUIRED_ALWAYS"|"NOT_REQUIRED"

--object-type (string)

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.

Possible values:

  • NODE




--facet-style (string)

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.

Possible values:



--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

See ‘aws help’ for descriptions of global parameters.