{
    "smithy": "1.0",
    "metadata": {
        "suppressions": [
            {
                "id": "HttpMethodSemantics",
                "namespace": "*"
            },
            {
                "id": "HttpResponseCodeSemantics",
                "namespace": "*"
            },
            {
                "id": "PaginatedTrait",
                "namespace": "*"
            },
            {
                "id": "HttpHeaderTrait",
                "namespace": "*"
            },
            {
                "id": "HttpUriConflict",
                "namespace": "*"
            },
            {
                "id": "Service",
                "namespace": "*"
            }
        ]
    },
    "shapes": {
        "com.amazonaws.clouddirectory#AccessDeniedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<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>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 403
            }
        },
        "com.amazonaws.clouddirectory#AddFacetToObject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#AddFacetToObjectRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#AddFacetToObjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Adds a new <a>Facet</a> to an object. An object can have more than one facet applied on it.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object/facets",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#AddFacetToObjectRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where the object resides. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifiers for the facet that you are adding to the object. See <a>SchemaFacet</a> for details.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectAttributeList": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>Attributes on the facet that you are adding to the object.</p>"
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object you are adding the specified facet to.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AddFacetToObjectResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#AmazonCloudDirectory_20170111": {
            "type": "service",
            "version": "2017-01-11",
            "operations": [
                {
                    "target": "com.amazonaws.clouddirectory#AddFacetToObject"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ApplySchema"
                },
                {
                    "target": "com.amazonaws.clouddirectory#AttachObject"
                },
                {
                    "target": "com.amazonaws.clouddirectory#AttachPolicy"
                },
                {
                    "target": "com.amazonaws.clouddirectory#AttachToIndex"
                },
                {
                    "target": "com.amazonaws.clouddirectory#AttachTypedLink"
                },
                {
                    "target": "com.amazonaws.clouddirectory#BatchRead"
                },
                {
                    "target": "com.amazonaws.clouddirectory#BatchWrite"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CreateDirectory"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CreateFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CreateIndex"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CreateObject"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CreateSchema"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CreateTypedLinkFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DeleteDirectory"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DeleteFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DeleteObject"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DeleteSchema"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DeleteTypedLinkFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DetachFromIndex"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DetachObject"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DetachPolicy"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DetachTypedLink"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DisableDirectory"
                },
                {
                    "target": "com.amazonaws.clouddirectory#EnableDirectory"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetAppliedSchemaVersion"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetDirectory"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetLinkAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetObjectAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetObjectInformation"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetSchemaAsJson"
                },
                {
                    "target": "com.amazonaws.clouddirectory#GetTypedLinkFacetInformation"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListAppliedSchemaArns"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListAttachedIndices"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListDevelopmentSchemaArns"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListDirectories"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListFacetAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListFacetNames"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListIncomingTypedLinks"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListIndex"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListManagedSchemaArns"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListObjectAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListObjectChildren"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListObjectParentPaths"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListObjectParents"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListObjectPolicies"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListOutgoingTypedLinks"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListPolicyAttachments"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListPublishedSchemaArns"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListTagsForResource"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListTypedLinkFacetAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ListTypedLinkFacetNames"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LookupPolicy"
                },
                {
                    "target": "com.amazonaws.clouddirectory#PublishSchema"
                },
                {
                    "target": "com.amazonaws.clouddirectory#PutSchemaFromJson"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RemoveFacetFromObject"
                },
                {
                    "target": "com.amazonaws.clouddirectory#TagResource"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UntagResource"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpdateFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpdateLinkAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpdateObjectAttributes"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpdateSchema"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpdateTypedLinkFacet"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpgradeAppliedSchema"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UpgradePublishedSchema"
                }
            ],
            "traits": {
                "aws.api#service": {
                    "sdkId": "CloudDirectory",
                    "arnNamespace": "clouddirectory",
                    "cloudFormationName": "CloudDirectory",
                    "cloudTrailEventSource": "clouddirectory.amazonaws.com",
                    "endpointPrefix": "clouddirectory"
                },
                "aws.auth#sigv4": {
                    "name": "clouddirectory"
                },
                "aws.protocols#restJson1": {},
                "smithy.api#documentation": "<fullname>Amazon Cloud Directory</fullname>\n         <p>Amazon Cloud Directory is a component of the AWS Directory Service that simplifies the\n      development and management of cloud-scale web, mobile, and IoT applications. This guide\n      describes the Cloud Directory operations that you can call programmatically and includes\n      detailed information on data types and errors. For information about Cloud Directory features, see <a href=\"https://aws.amazon.com/directoryservice/\">AWS Directory\n        Service</a> and the <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/what_is_cloud_directory.html\">Amazon Cloud Directory Developer Guide</a>.</p>",
                "smithy.api#title": "Amazon CloudDirectory"
            }
        },
        "com.amazonaws.clouddirectory#ApplySchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ApplySchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ApplySchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidAttachmentException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#SchemaAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Copies the input published schema, at the specified version, into the <a>Directory</a> with the same\n      name and version as that of the published schema.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/apply",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#ApplySchemaRequest": {
            "type": "structure",
            "members": {
                "PublishedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>Published schema Amazon Resource Name (ARN) that needs to be copied. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      into which the schema is copied. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ApplySchemaResponse": {
            "type": "structure",
            "members": {
                "AppliedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The applied schema ARN that is associated with the copied schema in the <a>Directory</a>. You can use this ARN to describe the schema information applied on\n      this directory. For more information, see <a>arns</a>.</p>"
                    }
                },
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN that is associated with the <a>Directory</a>. For more information,\n      see <a>arns</a>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#Arn": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#Arns": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#Arn"
            }
        },
        "com.amazonaws.clouddirectory#AttachObject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#AttachObjectRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#AttachObjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidAttachmentException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LinkNameAlreadyInUseException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Attaches an existing object to another object. An object can be accessed in two\n      ways:</p>\n         <ol>\n            <li>\n               <p>Using the path</p>\n            </li>\n            <li>\n               <p>Using <code>ObjectIdentifier</code>\n               </p>\n            </li>\n         </ol>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object/attach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachObjectRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where both objects reside. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The parent object reference.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ChildReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The child object reference to be attached to the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The link name with which the child object is attached to the parent.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachObjectResponse": {
            "type": "structure",
            "members": {
                "AttachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The attached <code>ObjectIdentifier</code>, which is the child\n        <code>ObjectIdentifier</code>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#AttachPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#AttachPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotPolicyException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Attaches a policy object to a regular object. An object can have a limited number of attached\n      policies.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/policy/attach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachPolicyRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where both objects reside. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "PolicyReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that is associated with the policy object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object to which the policy will be\n      attached.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachPolicyResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#AttachToIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#AttachToIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#AttachToIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#IndexedAttributeMissingException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidAttachmentException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LinkNameAlreadyInUseException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotIndexException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Attaches the specified object to the specified index.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/index/attach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachToIndexRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the directory where the object and index\n      exist.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "IndexReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the index that you are attaching the object to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object that you are attaching to the index.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachToIndexResponse": {
            "type": "structure",
            "members": {
                "AttachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the object that was attached to the index.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachTypedLink": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#AttachTypedLinkRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#AttachTypedLinkResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidAttachmentException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Attaches a typed link to a specified source and target object. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/attach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachTypedLinkRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the directory where you want to attach the typed\n      link.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "SourceObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the source object that the typed link will attach to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the target object that the typed link will attach to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TypedLinkFacet": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the typed link facet that is associated with the typed link.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>A set of attributes that are associated with the typed link.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttachTypedLinkResponse": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a typed link specifier as output.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#AttributeKey": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the schema that contains the facet and\n      attribute.</p>",
                        "smithy.api#required": {}
                    }
                },
                "FacetName": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet that the attribute exists within.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#AttributeName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the attribute.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A unique identifier for an attribute.</p>"
            }
        },
        "com.amazonaws.clouddirectory#AttributeKeyAndValue": {
            "type": "structure",
            "members": {
                "Key": {
                    "target": "com.amazonaws.clouddirectory#AttributeKey",
                    "traits": {
                        "smithy.api#documentation": "<p>The key of the attribute.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Value": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The value of the attribute.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The combination of an attribute key and an attribute value.</p>"
            }
        },
        "com.amazonaws.clouddirectory#AttributeKeyAndValueList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#AttributeKeyAndValue"
            }
        },
        "com.amazonaws.clouddirectory#AttributeKeyList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#AttributeKey"
            }
        },
        "com.amazonaws.clouddirectory#AttributeName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 230
                },
                "smithy.api#pattern": "^[a-zA-Z0-9._:-]*$"
            }
        },
        "com.amazonaws.clouddirectory#AttributeNameAndValue": {
            "type": "structure",
            "members": {
                "AttributeName": {
                    "target": "com.amazonaws.clouddirectory#AttributeName",
                    "traits": {
                        "smithy.api#documentation": "<p>The attribute name of the typed link.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Value": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The value for the typed link.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Identifies the attribute name and value for a typed link.</p>"
            }
        },
        "com.amazonaws.clouddirectory#AttributeNameAndValueList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#AttributeNameAndValue"
            }
        },
        "com.amazonaws.clouddirectory#AttributeNameList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#AttributeName"
            }
        },
        "com.amazonaws.clouddirectory#BatchAddFacetToObject": {
            "type": "structure",
            "members": {
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the facet being added to the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectAttributeList": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes to set on the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object being mutated.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a batch add facet to object operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAddFacetToObjectResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>The result of a batch add facet to object operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachObject": {
            "type": "structure",
            "members": {
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The parent object reference.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ChildReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The child object reference that is to be attached to the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the link.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of an <a>AttachObject</a> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachObjectResponse": {
            "type": "structure",
            "members": {
                "attachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the object that has been attached.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output batch <a>AttachObject</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachPolicy": {
            "type": "structure",
            "members": {
                "PolicyReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that is associated with the policy object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object to which the policy will be\n       attached.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Attaches a policy object to a regular object inside a <a>BatchRead</a> operation. For more information, see <a>AttachPolicy</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachPolicyResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of an <a>AttachPolicy</a> response\n      operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachToIndex": {
            "type": "structure",
            "members": {
                "IndexReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the index that you are attaching the object to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object that you are attaching to the index.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Attaches the specified object to the specified index inside a <a>BatchRead</a> operation. For more information, see <a>AttachToIndex</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachToIndexResponse": {
            "type": "structure",
            "members": {
                "AttachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the object that was attached to the index.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>AttachToIndex</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachTypedLink": {
            "type": "structure",
            "members": {
                "SourceObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the source object that the typed link will attach to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the target object that the typed link will attach to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TypedLinkFacet": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the typed link facet that is associated with the typed link.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>A set of attributes that are associated with the typed link.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Attaches a typed link to a specified source and target object inside a <a>BatchRead</a> operation. For more information, see <a>AttachTypedLink</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchAttachTypedLinkResponse": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a typed link specifier as output.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>AttachTypedLink</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchCreateIndex": {
            "type": "structure",
            "members": {
                "OrderedIndexedAttributeList": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyList",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the attributes that should be indexed on. Currently only a single attribute\n       is supported.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IsUnique": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>Indicates whether the attribute that is being indexed has unique values or\n       not.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the parent object that contains the index object.</p>"
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the link between the parent object and the index object.</p>"
                    }
                },
                "BatchReferenceName": {
                    "target": "com.amazonaws.clouddirectory#BatchReferenceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The batch reference name. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html\">Transaction Support</a> for more information.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Creates an index object inside of a <a>BatchRead</a> operation. For more information, see <a>CreateIndex</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchCreateIndexResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the index created by this operation.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>CreateIndex</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchCreateObject": {
            "type": "structure",
            "members": {
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacetList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of <code>FacetArns</code> that will be associated with the object. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectAttributeList": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>An attribute map, which contains an attribute ARN as the key and attribute value as\n      the map value.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>If specified, the parent reference to which this object will be attached.</p>"
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the link.</p>"
                    }
                },
                "BatchReferenceName": {
                    "target": "com.amazonaws.clouddirectory#BatchReferenceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The batch reference name. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html\">Transaction Support</a> for more information.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>CreateObject</a> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchCreateObjectResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID that is associated with the object.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>CreateObject</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDeleteObject": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DeleteObject</a> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDeleteObjectResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DeleteObject</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachFromIndex": {
            "type": "structure",
            "members": {
                "IndexReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the index object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object being detached from the index.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Detaches the specified object from the specified index inside a <a>BatchRead</a> operation. For more information, see <a>DetachFromIndex</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachFromIndexResponse": {
            "type": "structure",
            "members": {
                "DetachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the object that was detached from the index.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DetachFromIndex</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachObject": {
            "type": "structure",
            "members": {
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Parent reference from which the object with the specified link name is\n      detached.</p>",
                        "smithy.api#required": {}
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the link.</p>",
                        "smithy.api#required": {}
                    }
                },
                "BatchReferenceName": {
                    "target": "com.amazonaws.clouddirectory#BatchReferenceName",
                    "traits": {
                        "smithy.api#documentation": "<p>The batch reference name. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/transaction_support.html\">Transaction Support</a> for more information.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DetachObject</a> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachObjectResponse": {
            "type": "structure",
            "members": {
                "detachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the detached object.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DetachObject</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachPolicy": {
            "type": "structure",
            "members": {
                "PolicyReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the policy object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose policy object will be detached.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Detaches the specified policy from the specified directory inside a <a>BatchWrite</a> operation. For more information, see <a>DetachPolicy</a> and <a>BatchWriteRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachPolicyResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DetachPolicy</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachTypedLink": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Used to accept a typed link specifier as input.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Detaches a typed link from a specified source and target object inside a <a>BatchRead</a> operation. For more information, see <a>DetachTypedLink</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchDetachTypedLinkResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>DetachTypedLink</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchGetLinkAttributes": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Allows a typed link specifier to be accepted as input.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeNames": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of attribute names whose values will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Retrieves attributes that are associated with a typed link inside a <a>BatchRead</a> operation. For more information, see <a>GetLinkAttributes</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchGetLinkAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes that are associated with the typed link.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>GetLinkAttributes</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchGetObjectAttributes": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose attributes will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifier for the facet whose attributes will be retrieved. See <a>SchemaFacet</a> for details.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeNames": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>List of attribute names whose values will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Retrieves attributes within a facet that are associated with an object inside an <a>BatchRead</a> operation. For more information, see <a>GetObjectAttributes</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchGetObjectAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attribute values that are associated with an object.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>GetObjectAttributes</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchGetObjectInformation": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Retrieves metadata about an object inside a <a>BatchRead</a> operation. For more information, see <a>GetObjectInformation</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchGetObjectInformationResponse": {
            "type": "structure",
            "members": {
                "SchemaFacets": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacetList",
                    "traits": {
                        "smithy.api#documentation": "<p>The facets attached to the specified object.</p>"
                    }
                },
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the specified object.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>GetObjectInformation</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListAttachedIndices": {
            "type": "structure",
            "members": {
                "TargetReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object that has indices attached.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Lists indices attached to an object inside a <a>BatchRead</a> operation. For more information, see <a>ListAttachedIndices</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListAttachedIndicesResponse": {
            "type": "structure",
            "members": {
                "IndexAttachments": {
                    "target": "com.amazonaws.clouddirectory#IndexAttachmentList",
                    "traits": {
                        "smithy.api#documentation": "<p>The indices attached to the specified object.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListAttachedIndices</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListIncomingTypedLinks": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "FilterAttributeRanges": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeRangeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides range filters for multiple attributes. When providing ranges to typed link\n       selection, any inexact ranges must be specified at the end. Any attributes that do not have a\n       range specified are presumed to match the entire range.</p>"
                    }
                },
                "FilterTypedLink": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Filters are interpreted in the order of the attributes on the typed link facet, not the\n       order in which they are supplied to any API calls.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a> information for an object inside a <a>BatchRead</a> operation. For more information, see <a>ListIncomingTypedLinks</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListIncomingTypedLinksResponse": {
            "type": "structure",
            "members": {
                "LinkSpecifiers": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns one or more typed link specifiers as output.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListIncomingTypedLinks</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListIndex": {
            "type": "structure",
            "members": {
                "RangesOnIndexedValues": {
                    "target": "com.amazonaws.clouddirectory#ObjectAttributeRangeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the ranges of indexed values that you want to query.</p>"
                    }
                },
                "IndexReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference to the index to list.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Lists objects attached to the specified index inside a <a>BatchRead</a> operation. For more information, see <a>ListIndex</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListIndexResponse": {
            "type": "structure",
            "members": {
                "IndexAttachments": {
                    "target": "com.amazonaws.clouddirectory#IndexAttachmentList",
                    "traits": {
                        "smithy.api#documentation": "<p>The objects and indexed values attached to the index.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListIndex</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectAttributes": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference of the object whose attributes need to be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                },
                "FacetFilter": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>Used to filter the list of object attributes that are associated with a certain\n      facet.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectAttributes</a> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes map that is associated with the object. <code>AttributeArn</code> is the\n      key; attribute value is the value.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectAttributes</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectChildren": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference of the object for which child objects are being listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>Maximum number of items to be retrieved in a single call. This is an approximate\n       number.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectChildren</a> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectChildrenResponse": {
            "type": "structure",
            "members": {
                "Children": {
                    "target": "com.amazonaws.clouddirectory#LinkNameToObjectIdentifierMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The children structure, which is a map with the key as the <code>LinkName</code> and\n        <code>ObjectIdentifier</code> as the value.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectChildren</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectParentPaths": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects inside a <a>BatchRead</a> operation. For more information, see <a>ListObjectParentPaths</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectParentPathsResponse": {
            "type": "structure",
            "members": {
                "PathToObjectIdentifiersList": {
                    "target": "com.amazonaws.clouddirectory#PathToObjectIdentifiersList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns the path to the <code>ObjectIdentifiers</code> that are associated with the\n       directory.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectParentPaths</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectParents": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Lists parent objects that are associated with a given object in pagination\n      fashion.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectParentsResponse": {
            "type": "structure",
            "members": {
                "ParentLinks": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierAndLinkNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a list of parent reference and LinkName Tuples.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectParents</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectPolicies": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Returns policies attached to an object in pagination fashion inside a <a>BatchRead</a> operation. For more information, see <a>ListObjectPolicies</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListObjectPoliciesResponse": {
            "type": "structure",
            "members": {
                "AttachedPolicyIds": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of policy <code>ObjectIdentifiers</code>, that are attached to the\n       object.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListObjectPolicies</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListOutgoingTypedLinks": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "FilterAttributeRanges": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeRangeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides range filters for multiple attributes. When providing ranges to typed link\n       selection, any inexact ranges must be specified at the end. Any attributes that do not have a\n       range specified are presumed to match the entire range.</p>"
                    }
                },
                "FilterTypedLink": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Filters are interpreted in the order of the attributes defined on the typed link facet,\n       not the order they are supplied to any API calls.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a> information for an object inside a <a>BatchRead</a> operation. For more information, see <a>ListOutgoingTypedLinks</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListOutgoingTypedLinksResponse": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifiers": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a typed link specifier as output.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListOutgoingTypedLinks</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListPolicyAttachments": {
            "type": "structure",
            "members": {
                "PolicyReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the policy object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is attached inside a <a>BatchRead</a> operation. For more information, see <a>ListPolicyAttachments</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchListPolicyAttachmentsResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifiers": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of <code>ObjectIdentifiers</code> to which the policy is attached.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>ListPolicyAttachments</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchLookupPolicy": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose policies will be looked up.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Lists all policies from the root of the Directory to the object specified inside a <a>BatchRead</a> operation. For more information, see <a>LookupPolicy</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchLookupPolicyResponse": {
            "type": "structure",
            "members": {
                "PolicyToPathList": {
                    "target": "com.amazonaws.clouddirectory#PolicyToPathList",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides list of path to policies. Policies contain <code>PolicyId</code>, <code>ObjectIdentifier</code>, and\n       <code>PolicyType</code>. For more\n       information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>LookupPolicy</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchOperationIndex": {
            "type": "integer"
        },
        "com.amazonaws.clouddirectory#BatchRead": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#BatchReadRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#BatchReadResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Performs all the read operations in a batch. </p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/batchread",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#BatchReadException": {
            "type": "structure",
            "members": {
                "Type": {
                    "target": "com.amazonaws.clouddirectory#BatchReadExceptionType",
                    "traits": {
                        "smithy.api#documentation": "<p>A type of exception, such as <code>InvalidArnException</code>.</p>"
                    }
                },
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage",
                    "traits": {
                        "smithy.api#documentation": "<p>An exception message that is associated with the failure.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The batch read exception structure, which contains the exception type and\n      message.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchReadExceptionType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ValidationException",
                        "name": "ValidationException"
                    },
                    {
                        "value": "InvalidArnException",
                        "name": "InvalidArnException"
                    },
                    {
                        "value": "ResourceNotFoundException",
                        "name": "ResourceNotFoundException"
                    },
                    {
                        "value": "InvalidNextTokenException",
                        "name": "InvalidNextTokenException"
                    },
                    {
                        "value": "AccessDeniedException",
                        "name": "AccessDeniedException"
                    },
                    {
                        "value": "NotNodeException",
                        "name": "NotNodeException"
                    },
                    {
                        "value": "FacetValidationException",
                        "name": "FacetValidationException"
                    },
                    {
                        "value": "CannotListParentOfRootException",
                        "name": "CannotListParentOfRootException"
                    },
                    {
                        "value": "NotIndexException",
                        "name": "NotIndexException"
                    },
                    {
                        "value": "NotPolicyException",
                        "name": "NotPolicyException"
                    },
                    {
                        "value": "DirectoryNotEnabledException",
                        "name": "DirectoryNotEnabledException"
                    },
                    {
                        "value": "LimitExceededException",
                        "name": "LimitExceededException"
                    },
                    {
                        "value": "InternalServiceException",
                        "name": "InternalServiceException"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#BatchReadOperation": {
            "type": "structure",
            "members": {
                "ListObjectAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectAttributes",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists all attributes that are associated with an object.</p>"
                    }
                },
                "ListObjectChildren": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectChildren",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a paginated list of child objects that are associated with a given\n      object.</p>"
                    }
                },
                "ListAttachedIndices": {
                    "target": "com.amazonaws.clouddirectory#BatchListAttachedIndices",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists indices attached to an object.</p>"
                    }
                },
                "ListObjectParentPaths": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectParentPaths",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves all available parent paths for any object type such as node, leaf node,\n       policy node, and index node objects. For more information about objects, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html\">Directory Structure</a>.</p>"
                    }
                },
                "GetObjectInformation": {
                    "target": "com.amazonaws.clouddirectory#BatchGetObjectInformation",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves metadata about an object.</p>"
                    }
                },
                "GetObjectAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchGetObjectAttributes",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves attributes within a facet that are associated with an object.</p>"
                    }
                },
                "ListObjectParents": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectParents",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists parent objects that are associated with a given object in pagination\n      fashion.</p>"
                    }
                },
                "ListObjectPolicies": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectPolicies",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns policies attached to an object in pagination fashion.</p>"
                    }
                },
                "ListPolicyAttachments": {
                    "target": "com.amazonaws.clouddirectory#BatchListPolicyAttachments",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is attached.</p>"
                    }
                },
                "LookupPolicy": {
                    "target": "com.amazonaws.clouddirectory#BatchLookupPolicy",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists all policies from the root of the <a>Directory</a> to the object\n       specified. If there are no policies present, an empty list is returned. If policies are\n       present, and if some objects don't have the policies attached, it returns the <code>ObjectIdentifier</code>\n       for such objects. If policies are present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and\n       <code>policyType</code>. Paths that don't lead to the root from the target object are ignored. For more\n       information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>"
                    }
                },
                "ListIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchListIndex",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists objects attached to the specified index.</p>"
                    }
                },
                "ListOutgoingTypedLinks": {
                    "target": "com.amazonaws.clouddirectory#BatchListOutgoingTypedLinks",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a>\n       information for an object. It also supports filtering by typed link facet and identity\n       attributes. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "ListIncomingTypedLinks": {
                    "target": "com.amazonaws.clouddirectory#BatchListIncomingTypedLinks",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a>\n       information for an object. It also supports filtering by typed link facet and identity\n       attributes. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "GetLinkAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchGetLinkAttributes",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves attributes that are associated with a typed link.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchRead</code> operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchReadOperationList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#BatchReadOperation"
            }
        },
        "com.amazonaws.clouddirectory#BatchReadOperationResponse": {
            "type": "structure",
            "members": {
                "SuccessfulResponse": {
                    "target": "com.amazonaws.clouddirectory#BatchReadSuccessfulResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies which operation in a batch has succeeded.</p>"
                    }
                },
                "ExceptionResponse": {
                    "target": "com.amazonaws.clouddirectory#BatchReadException",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies which operation in a batch has failed.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchRead</code> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchReadOperationResponseList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#BatchReadOperationResponse"
            }
        },
        "com.amazonaws.clouddirectory#BatchReadRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>.\n      For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Operations": {
                    "target": "com.amazonaws.clouddirectory#BatchReadOperationList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of operations that are part of the batch.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the manner and timing in which the successful write or update of an object\n      is reflected in a subsequent read operation of that same object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#BatchReadResponse": {
            "type": "structure",
            "members": {
                "Responses": {
                    "target": "com.amazonaws.clouddirectory#BatchReadOperationResponseList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of all the responses for each batch read.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#BatchReadSuccessfulResponse": {
            "type": "structure",
            "members": {
                "ListObjectAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectAttributesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists all attributes that are associated with an object.</p>"
                    }
                },
                "ListObjectChildren": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectChildrenResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a paginated list of child objects that are associated with a given\n      object.</p>"
                    }
                },
                "GetObjectInformation": {
                    "target": "com.amazonaws.clouddirectory#BatchGetObjectInformationResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves metadata about an object.</p>"
                    }
                },
                "GetObjectAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchGetObjectAttributesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves attributes within a facet that are associated with an object.</p>"
                    }
                },
                "ListAttachedIndices": {
                    "target": "com.amazonaws.clouddirectory#BatchListAttachedIndicesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists indices attached to an object.</p>"
                    }
                },
                "ListObjectParentPaths": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectParentPathsResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Retrieves all available parent paths for any object type such as node, leaf node,\n       policy node, and index node objects. For more information about objects, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html\">Directory Structure</a>.</p>"
                    }
                },
                "ListObjectPolicies": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectPoliciesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns policies attached to an object in pagination fashion.</p>"
                    }
                },
                "ListPolicyAttachments": {
                    "target": "com.amazonaws.clouddirectory#BatchListPolicyAttachmentsResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is attached.</p>"
                    }
                },
                "LookupPolicy": {
                    "target": "com.amazonaws.clouddirectory#BatchLookupPolicyResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists all policies from the root of the <a>Directory</a> to the object\n       specified. If there are no policies present, an empty list is returned. If policies are\n       present, and if some objects don't have the policies attached, it returns the <code>ObjectIdentifier</code>\n       for such objects. If policies are present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and\n       <code>policyType</code>. Paths that don't lead to the root from the target object are ignored. For more\n       information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>"
                    }
                },
                "ListIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchListIndexResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists objects attached to the specified index.</p>"
                    }
                },
                "ListOutgoingTypedLinks": {
                    "target": "com.amazonaws.clouddirectory#BatchListOutgoingTypedLinksResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a>\n       information for an object. It also supports filtering by typed link facet and identity\n       attributes. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "ListIncomingTypedLinks": {
                    "target": "com.amazonaws.clouddirectory#BatchListIncomingTypedLinksResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a>\n       information for an object. It also supports filtering by typed link facet and identity\n       attributes. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "GetLinkAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchGetLinkAttributesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of attributes to retrieve from the typed link.</p>"
                    }
                },
                "ListObjectParents": {
                    "target": "com.amazonaws.clouddirectory#BatchListObjectParentsResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>The list of parent objects to retrieve.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchRead</code> success response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchReferenceName": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#BatchRemoveFacetFromObject": {
            "type": "structure",
            "members": {
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>The facet to remove from the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object whose facet will be removed.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A batch operation to remove a facet from an object.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchRemoveFacetFromObjectResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>An empty result that represents success.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchUpdateLinkAttributes": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Allows a typed link specifier to be accepted as input.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeUpdates": {
                    "target": "com.amazonaws.clouddirectory#LinkAttributeUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes update structure.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Updates a given typed link’s attributes inside a <a>BatchRead</a> operation. Attributes to be updated must not contribute to the typed link’s identity, as defined by its <code>IdentityAttributeOrder</code>. For more information, see <a>UpdateLinkAttributes</a> and <a>BatchReadRequest$Operations</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchUpdateLinkAttributesResponse": {
            "type": "structure",
            "members": {},
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <a>UpdateLinkAttributes</a> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchUpdateObjectAttributes": {
            "type": "structure",
            "members": {
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeUpdates": {
                    "target": "com.amazonaws.clouddirectory#ObjectAttributeUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>Attributes update structure.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchUpdate</code> operation. </p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchUpdateObjectAttributesResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>ID that is associated with the object.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchUpdate</code> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchWrite": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#BatchWriteRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#BatchWriteResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#BatchWriteException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Performs all the write operations in a batch. Either all the operations succeed or\n      none.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/batchwrite",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteException": {
            "type": "structure",
            "members": {
                "Index": {
                    "target": "com.amazonaws.clouddirectory#BatchOperationIndex"
                },
                "Type": {
                    "target": "com.amazonaws.clouddirectory#BatchWriteExceptionType"
                },
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A <code>BatchWrite</code> exception has occurred.</p>",
                "smithy.api#error": "client"
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteExceptionType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "InternalServiceException",
                        "name": "InternalServiceException"
                    },
                    {
                        "value": "ValidationException",
                        "name": "ValidationException"
                    },
                    {
                        "value": "InvalidArnException",
                        "name": "InvalidArnException"
                    },
                    {
                        "value": "LinkNameAlreadyInUseException",
                        "name": "LinkNameAlreadyInUseException"
                    },
                    {
                        "value": "StillContainsLinksException",
                        "name": "StillContainsLinksException"
                    },
                    {
                        "value": "FacetValidationException",
                        "name": "FacetValidationException"
                    },
                    {
                        "value": "ObjectNotDetachedException",
                        "name": "ObjectNotDetachedException"
                    },
                    {
                        "value": "ResourceNotFoundException",
                        "name": "ResourceNotFoundException"
                    },
                    {
                        "value": "AccessDeniedException",
                        "name": "AccessDeniedException"
                    },
                    {
                        "value": "InvalidAttachmentException",
                        "name": "InvalidAttachmentException"
                    },
                    {
                        "value": "NotIndexException",
                        "name": "NotIndexException"
                    },
                    {
                        "value": "NotNodeException",
                        "name": "NotNodeException"
                    },
                    {
                        "value": "IndexedAttributeMissingException",
                        "name": "IndexedAttributeMissingException"
                    },
                    {
                        "value": "ObjectAlreadyDetachedException",
                        "name": "ObjectAlreadyDetachedException"
                    },
                    {
                        "value": "NotPolicyException",
                        "name": "NotPolicyException"
                    },
                    {
                        "value": "DirectoryNotEnabledException",
                        "name": "DirectoryNotEnabledException"
                    },
                    {
                        "value": "LimitExceededException",
                        "name": "LimitExceededException"
                    },
                    {
                        "value": "UnsupportedIndexTypeException",
                        "name": "UnsupportedIndexTypeException"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteOperation": {
            "type": "structure",
            "members": {
                "CreateObject": {
                    "target": "com.amazonaws.clouddirectory#BatchCreateObject",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates an object.</p>"
                    }
                },
                "AttachObject": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachObject",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches an object to a <a>Directory</a>.</p>"
                    }
                },
                "DetachObject": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachObject",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches an object from a <a>Directory</a>.</p>"
                    }
                },
                "UpdateObjectAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchUpdateObjectAttributes",
                    "traits": {
                        "smithy.api#documentation": "<p>Updates a given object's attributes.</p>"
                    }
                },
                "DeleteObject": {
                    "target": "com.amazonaws.clouddirectory#BatchDeleteObject",
                    "traits": {
                        "smithy.api#documentation": "<p>Deletes an object in a <a>Directory</a>.</p>"
                    }
                },
                "AddFacetToObject": {
                    "target": "com.amazonaws.clouddirectory#BatchAddFacetToObject",
                    "traits": {
                        "smithy.api#documentation": "<p>A batch operation that adds a facet to an object.</p>"
                    }
                },
                "RemoveFacetFromObject": {
                    "target": "com.amazonaws.clouddirectory#BatchRemoveFacetFromObject",
                    "traits": {
                        "smithy.api#documentation": "<p>A batch operation that removes a facet from an object.</p>"
                    }
                },
                "AttachPolicy": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachPolicy",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches a policy object to a regular object. An object can have a limited number of attached\n       policies.</p>"
                    }
                },
                "DetachPolicy": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachPolicy",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches a policy from a <a>Directory</a>.</p>"
                    }
                },
                "CreateIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchCreateIndex",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates an index object. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm\">Indexing and search</a> for more information.</p>"
                    }
                },
                "AttachToIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachToIndex",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches the specified object to the specified index.</p>"
                    }
                },
                "DetachFromIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachFromIndex",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches the specified object from the specified index.</p>"
                    }
                },
                "AttachTypedLink": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachTypedLink",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches a typed link to a specified source and target object. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "DetachTypedLink": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachTypedLink",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches a typed link from a specified source and target object. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "UpdateLinkAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchUpdateLinkAttributes",
                    "traits": {
                        "smithy.api#documentation": "<p>Updates a given object's attributes.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchWrite</code> operation. </p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteOperationList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#BatchWriteOperation"
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteOperationResponse": {
            "type": "structure",
            "members": {
                "CreateObject": {
                    "target": "com.amazonaws.clouddirectory#BatchCreateObjectResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates an object in a <a>Directory</a>.</p>"
                    }
                },
                "AttachObject": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachObjectResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches an object to a <a>Directory</a>.</p>"
                    }
                },
                "DetachObject": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachObjectResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches an object from a <a>Directory</a>.</p>"
                    }
                },
                "UpdateObjectAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchUpdateObjectAttributesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Updates a given object’s attributes.</p>"
                    }
                },
                "DeleteObject": {
                    "target": "com.amazonaws.clouddirectory#BatchDeleteObjectResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Deletes an object in a <a>Directory</a>.</p>"
                    }
                },
                "AddFacetToObject": {
                    "target": "com.amazonaws.clouddirectory#BatchAddFacetToObjectResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>The result of an add facet to object batch operation.</p>"
                    }
                },
                "RemoveFacetFromObject": {
                    "target": "com.amazonaws.clouddirectory#BatchRemoveFacetFromObjectResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>The result of a batch remove facet from object operation.</p>"
                    }
                },
                "AttachPolicy": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachPolicyResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches a policy object to a regular object. An object can have a limited number of attached\n       policies.</p>"
                    }
                },
                "DetachPolicy": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachPolicyResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches a policy from a <a>Directory</a>.</p>"
                    }
                },
                "CreateIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchCreateIndexResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Creates an index object. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.htm\">Indexing and search</a> for more information.</p>"
                    }
                },
                "AttachToIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachToIndexResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches the specified object to the specified index.</p>"
                    }
                },
                "DetachFromIndex": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachFromIndexResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches the specified object from the specified index.</p>"
                    }
                },
                "AttachTypedLink": {
                    "target": "com.amazonaws.clouddirectory#BatchAttachTypedLinkResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Attaches a typed link to a specified source and target object. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "DetachTypedLink": {
                    "target": "com.amazonaws.clouddirectory#BatchDetachTypedLinkResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Detaches a typed link from a specified source and target object. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                },
                "UpdateLinkAttributes": {
                    "target": "com.amazonaws.clouddirectory#BatchUpdateLinkAttributesResponse",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the output of a <code>BatchWrite</code> response operation.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the output of a <code>BatchWrite</code> response operation.</p>"
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteOperationResponseList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#BatchWriteOperationResponse"
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>.\n      For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Operations": {
                    "target": "com.amazonaws.clouddirectory#BatchWriteOperationList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of operations that are part of the batch.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#BatchWriteResponse": {
            "type": "structure",
            "members": {
                "Responses": {
                    "target": "com.amazonaws.clouddirectory#BatchWriteOperationResponseList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of all the responses for each batch write.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#BinaryAttributeValue": {
            "type": "blob"
        },
        "com.amazonaws.clouddirectory#Bool": {
            "type": "boolean"
        },
        "com.amazonaws.clouddirectory#BooleanAttributeValue": {
            "type": "boolean",
            "traits": {
                "smithy.api#box": {}
            }
        },
        "com.amazonaws.clouddirectory#CannotListParentOfRootException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Cannot list the parents of a <a>Directory</a> root.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#ConsistencyLevel": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "SERIALIZABLE",
                        "name": "SERIALIZABLE"
                    },
                    {
                        "value": "EVENTUAL",
                        "name": "EVENTUAL"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#CreateDirectory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#CreateDirectoryRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#CreateDirectoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a <a>Directory</a> by copying the published schema into the\n      directory. A directory cannot be created without a schema.</p>\n         <p>You can also quickly create a directory using a managed schema, called the\n        <code>QuickStartSchema</code>. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_managed.html\">Managed Schema</a> in the <i>Amazon Cloud Directory Developer Guide</i>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/directory/create",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateDirectoryRequest": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#DirectoryName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the <a>Directory</a>. Should be unique per account, per\n      region.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the published schema that will be copied into the\n      data <a>Directory</a>. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateDirectoryResponse": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#DirectoryArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN that is associated with the <a>Directory</a>. For more information,\n      see <a>arns</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#DirectoryName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the <a>Directory</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The root object node of the created directory.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AppliedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the published schema in the <a>Directory</a>. Once a published\n      schema is copied into the directory, it has its own ARN, which is referred to applied schema\n      ARN. For more information, see <a>arns</a>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#CreateFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#CreateFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidRuleException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a new <a>Facet</a> in a schema. Facet creation is allowed only\n      in development or applied schemas.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/facet/create",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The schema ARN in which the new <a>Facet</a> will be created. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the <a>Facet</a>, which is unique for a given schema.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes that are associated with the <a>Facet</a>.</p>"
                    }
                },
                "ObjectType": {
                    "target": "com.amazonaws.clouddirectory#ObjectType",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies whether a given object created from this facet is of type node, leaf node,\n      policy or index.</p>\n         <ul>\n            <li>\n               <p>Node: Can have multiple children but one parent.</p>\n            </li>\n         </ul>\n         <ul>\n            <li>\n               <p>Leaf node: Cannot have children but can have multiple parents.</p>\n            </li>\n         </ul>\n         <ul>\n            <li>\n               <p>Policy: Allows you to store a policy document and policy type. For more\n        information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>\n            </li>\n         </ul>\n         <ul>\n            <li>\n               <p>Index: Can be created with the Index API.</p>\n            </li>\n         </ul>"
                    }
                },
                "FacetStyle": {
                    "target": "com.amazonaws.clouddirectory#FacetStyle",
                    "traits": {
                        "smithy.api#documentation": "<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>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateFacetResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#CreateIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#CreateIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#CreateIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LinkNameAlreadyInUseException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UnsupportedIndexTypeException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an index object. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/indexing_search.html\">Indexing and search</a> for more information.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/index",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateIndexRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory where the index should be created.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "OrderedIndexedAttributeList": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyList",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the attributes that should be indexed on. Currently only a single attribute\n      is supported.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IsUnique": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>Indicates whether the attribute that is being indexed has unique values or\n      not.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the parent object that contains the index object.</p>"
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the link between the parent object and the index object.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateIndexResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the index created by this operation.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateObject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#CreateObjectRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#CreateObjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LinkNameAlreadyInUseException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#UnsupportedIndexTypeException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates an object in a <a>Directory</a>. Additionally attaches the object to\n      a parent, if a parent reference and <code>LinkName</code> is specified. An object is simply a\n      collection of <a>Facet</a> attributes. You can also use this API call to create a\n      policy object, if the facet from which you create the object is a policy facet. </p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateObjectRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      in which the object will be created. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "SchemaFacets": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacetList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of schema facets to be associated with the object. Do not provide minor version components. See <a>SchemaFacet</a> for details.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectAttributeList": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attribute map whose attribute ARN contains the key and attribute value as the map\n      value.</p>"
                    }
                },
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>If specified, the parent reference to which this object will be attached.</p>"
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of link that is used to attach this object to a parent.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateObjectResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The identifier that is associated with the object.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateSchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#CreateSchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#CreateSchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#SchemaAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a new schema in a development state. A schema can exist in three\n      phases:</p>\n         <ul>\n            <li>\n               <p>\n                  <i>Development:</i> This is a mutable phase of the schema. All new\n          schemas are in the development phase. Once the schema is finalized, it can be\n          published.</p>\n            </li>\n            <li>\n               <p>\n                  <i>Published:</i> Published schemas are immutable and have a version\n          associated with them.</p>\n            </li>\n            <li>\n               <p>\n                  <i>Applied:</i> Applied schemas are mutable in a way that allows you\n          to add new schema facets. You can also add new, nonrequired attributes to existing schema\n          facets. You can apply only published schemas to directories. </p>\n            </li>\n         </ul>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/create",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateSchemaRequest": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#SchemaName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name that is associated with the schema. This is unique to each account and in each\n      region.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateSchemaResponse": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateTypedLinkFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#CreateTypedLinkFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#CreateTypedLinkFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidRuleException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Creates a <a>TypedLinkFacet</a>. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/facet/create",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateTypedLinkFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Facet": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>\n            <a>Facet</a> structure that is associated with the typed link\n      facet.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#CreateTypedLinkFacetResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#Date": {
            "type": "timestamp"
        },
        "com.amazonaws.clouddirectory#DatetimeAttributeValue": {
            "type": "timestamp"
        },
        "com.amazonaws.clouddirectory#DeleteDirectory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DeleteDirectoryRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DeleteDirectoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryDeletedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotDisabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a directory. Only disabled directories can be deleted. A deleted directory cannot be undone. Exercise extreme\n        caution\n        when deleting directories.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/directory",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteDirectoryRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory to delete.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteDirectoryResponse": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the deleted directory.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DeleteFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DeleteFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetInUseException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a given <a>Facet</a>. All attributes and <a>Rule</a>s\n      that are associated with the facet will be deleted. Only development schema facets are allowed\n      deletion.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/facet/delete",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Facet</a>.\n      For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet to delete.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteFacetResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#DeleteObject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DeleteObjectRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DeleteObjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ObjectNotDetachedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes an object and its associated attributes. Only objects with no children and no\n      parents can be deleted. The maximum number of attributes that can be deleted during an object deletion is 30. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html\">Amazon Cloud Directory Limits</a>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object/delete",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteObjectRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where the object resides. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference that identifies the object.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteObjectResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#DeleteSchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DeleteSchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DeleteSchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#StillContainsLinksException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a given schema. Schemas in a development and published state can only be deleted. </p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteSchemaRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the development schema. For more information, see\n        <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteSchemaResponse": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The input ARN that is returned as part of the response. For more information, see\n        <a>arns</a>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteTypedLinkFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DeleteTypedLinkFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DeleteTypedLinkFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Deletes a <a>TypedLinkFacet</a>. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/facet/delete",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteTypedLinkFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link facet.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DeleteTypedLinkFacetResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#DetachFromIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DetachFromIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DetachFromIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotIndexException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ObjectAlreadyDetachedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Detaches the specified object from the specified index.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/index/detach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachFromIndexRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the directory the index and object exist\n      in.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "IndexReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the index object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object being detached from the index.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachFromIndexResponse": {
            "type": "structure",
            "members": {
                "DetachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the object that was detached from the index.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachObject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DetachObjectRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DetachObjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotNodeException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Detaches a given object from the parent object. The object that is to be detached from the\n      parent is specified by the link name.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object/detach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachObjectRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where objects reside. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ParentReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The parent reference from which the object with the specified link name is\n      detached.</p>",
                        "smithy.api#required": {}
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The link name associated with the object that needs to be detached.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachObjectResponse": {
            "type": "structure",
            "members": {
                "DetachedObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> that was detached from the object.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DetachPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DetachPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotPolicyException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Detaches a policy from an object.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/policy/detach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachPolicyRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where both objects reside. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "PolicyReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the policy object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose policy object will be detached.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachPolicyResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#DetachTypedLink": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DetachTypedLinkRequest"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Detaches a typed link from a specified source and target object. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/detach",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DetachTypedLinkRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the directory where you want to detach the typed\n      link.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Used to accept a typed link specifier as input.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#Directory": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#DirectoryName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the directory.</p>"
                    }
                },
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#DirectoryArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the directory. For more\n      information, see <a>arns</a>.</p>"
                    }
                },
                "State": {
                    "target": "com.amazonaws.clouddirectory#DirectoryState",
                    "traits": {
                        "smithy.api#documentation": "<p>The state of the directory. Can be either <code>Enabled</code>, <code>Disabled</code>, or <code>Deleted</code>.</p>"
                    }
                },
                "CreationDateTime": {
                    "target": "com.amazonaws.clouddirectory#Date",
                    "traits": {
                        "smithy.api#documentation": "<p>The date and time when the directory was created.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Directory structure that includes the directory name and directory ARN.</p>"
            }
        },
        "com.amazonaws.clouddirectory#DirectoryAlreadyExistsException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that a <a>Directory</a> could not be created due to a naming\n      conflict. Choose a different name and try again.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#DirectoryArn": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#DirectoryDeletedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A directory that has been deleted and to which access has been attempted. Note: The\n      requested resource will eventually cease to exist.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#DirectoryList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#Directory"
            }
        },
        "com.amazonaws.clouddirectory#DirectoryName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[a-zA-Z0-9._-]*$"
            }
        },
        "com.amazonaws.clouddirectory#DirectoryNotDisabledException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>An operation can only operate on a disabled directory.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#DirectoryNotEnabledException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Operations are only permitted on enabled directories.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#DirectoryState": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "ENABLED",
                        "name": "ENABLED"
                    },
                    {
                        "value": "DISABLED",
                        "name": "DISABLED"
                    },
                    {
                        "value": "DELETED",
                        "name": "DELETED"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#DisableDirectory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#DisableDirectoryRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#DisableDirectoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryDeletedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Disables the specified directory. Disabled directories cannot be read or written to.\n      Only enabled directories can be disabled. Disabled directories may be reenabled.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/directory/disable",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#DisableDirectoryRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory to disable.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#DisableDirectoryResponse": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory that has been disabled.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#EnableDirectory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#EnableDirectoryRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#EnableDirectoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryDeletedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Enables the specified directory. Only disabled directories can be enabled. Once\n      enabled, the directory can then be read and written to.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/directory/enable",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#EnableDirectoryRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory to enable.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#EnableDirectoryResponse": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the enabled directory.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ExceptionMessage": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#Facet": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the <a>Facet</a>.</p>"
                    }
                },
                "ObjectType": {
                    "target": "com.amazonaws.clouddirectory#ObjectType",
                    "traits": {
                        "smithy.api#documentation": "<p>The object type that is associated with the facet. See <a>CreateFacetRequest$ObjectType</a> for more details.</p>"
                    }
                },
                "FacetStyle": {
                    "target": "com.amazonaws.clouddirectory#FacetStyle",
                    "traits": {
                        "smithy.api#documentation": "<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>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A structure that contains <code>Name</code>, <code>ARN</code>, <code>Attributes</code>, <code>\n               <a>Rule</a>s</code>, and\n      <code>ObjectTypes</code>. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_whatarefacets.html\">Facets</a> for more information.</p>"
            }
        },
        "com.amazonaws.clouddirectory#FacetAlreadyExistsException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A facet with the same name already exists.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#FacetAttribute": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#AttributeName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet attribute.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeDefinition": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>A facet attribute consists of either a definition or a reference. This structure\n      contains the attribute definition. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html\">Attribute References</a> for more information.</p>"
                    }
                },
                "AttributeReference": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeReference",
                    "traits": {
                        "smithy.api#documentation": "<p>An attribute reference that is associated with the attribute. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html\">Attribute References</a> for more information.</p>"
                    }
                },
                "RequiredBehavior": {
                    "target": "com.amazonaws.clouddirectory#RequiredAttributeBehavior",
                    "traits": {
                        "smithy.api#documentation": "<p>The required behavior of the <code>FacetAttribute</code>.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>An attribute that is associated with the <a>Facet</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#FacetAttributeDefinition": {
            "type": "structure",
            "members": {
                "Type": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the attribute.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DefaultValue": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The default value of the attribute (if configured).</p>"
                    }
                },
                "IsImmutable": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>Whether the attribute is mutable or not.</p>"
                    }
                },
                "Rules": {
                    "target": "com.amazonaws.clouddirectory#RuleMap",
                    "traits": {
                        "smithy.api#documentation": "<p>Validation rules attached to the attribute definition.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A facet attribute definition. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html\">Attribute References</a> for more information.</p>"
            }
        },
        "com.amazonaws.clouddirectory#FacetAttributeList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#FacetAttribute"
            }
        },
        "com.amazonaws.clouddirectory#FacetAttributeReference": {
            "type": "structure",
            "members": {
                "TargetFacetName": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The target facet name that is associated with the facet reference. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html\">Attribute References</a> for more information.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetAttributeName": {
                    "target": "com.amazonaws.clouddirectory#AttributeName",
                    "traits": {
                        "smithy.api#documentation": "<p>The target attribute name that is associated with the facet reference. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_attributereferences.html\">Attribute References</a> for more information.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The facet attribute reference that specifies the attribute definition that contains the\n      attribute facet name and attribute name.</p>"
            }
        },
        "com.amazonaws.clouddirectory#FacetAttributeType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "STRING",
                        "name": "STRING"
                    },
                    {
                        "value": "BINARY",
                        "name": "BINARY"
                    },
                    {
                        "value": "BOOLEAN",
                        "name": "BOOLEAN"
                    },
                    {
                        "value": "NUMBER",
                        "name": "NUMBER"
                    },
                    {
                        "value": "DATETIME",
                        "name": "DATETIME"
                    },
                    {
                        "value": "VARIANT",
                        "name": "VARIANT"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#FacetAttributeUpdate": {
            "type": "structure",
            "members": {
                "Attribute": {
                    "target": "com.amazonaws.clouddirectory#FacetAttribute",
                    "traits": {
                        "smithy.api#documentation": "<p>The attribute to update.</p>"
                    }
                },
                "Action": {
                    "target": "com.amazonaws.clouddirectory#UpdateActionType",
                    "traits": {
                        "smithy.api#documentation": "<p>The action to perform when updating the attribute.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A structure that contains information used to update an attribute.</p>"
            }
        },
        "com.amazonaws.clouddirectory#FacetAttributeUpdateList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#FacetAttributeUpdate"
            }
        },
        "com.amazonaws.clouddirectory#FacetInUseException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Occurs when deleting a facet that contains an attribute that is a target to an\n      attribute reference in a different facet.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#FacetName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[a-zA-Z0-9._-]*$"
            }
        },
        "com.amazonaws.clouddirectory#FacetNameList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#FacetName"
            }
        },
        "com.amazonaws.clouddirectory#FacetNotFoundException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The specified <a>Facet</a> could not be found.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#FacetStyle": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "STATIC",
                        "name": "STATIC"
                    },
                    {
                        "value": "DYNAMIC",
                        "name": "DYNAMIC"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#FacetValidationException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The <a>Facet</a> that you provided was not well formed or could not be\n      validated with the schema.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#GetAppliedSchemaVersion": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetAppliedSchemaVersionRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetAppliedSchemaVersionResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns current applied schema version ARN, including the minor version in use.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/getappliedschema",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetAppliedSchemaVersionRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the applied schema.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetAppliedSchemaVersionResponse": {
            "type": "structure",
            "members": {
                "AppliedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>Current applied schema ARN, including the minor version in use if one was provided.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetDirectory": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetDirectoryRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetDirectoryResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves metadata about a directory.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/directory/get",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetDirectoryRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#DirectoryArn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetDirectoryResponse": {
            "type": "structure",
            "members": {
                "Directory": {
                    "target": "com.amazonaws.clouddirectory#Directory",
                    "traits": {
                        "smithy.api#documentation": "<p>Metadata about the directory.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Gets details of the <a>Facet</a>, such as facet name, attributes, <a>Rule</a>s, or <code>ObjectType</code>. You can call this on all kinds of schema\n      facets -- published, development, or applied.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/facet",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Facet</a>.\n      For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet to retrieve.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetFacetResponse": {
            "type": "structure",
            "members": {
                "Facet": {
                    "target": "com.amazonaws.clouddirectory#Facet",
                    "traits": {
                        "smithy.api#documentation": "<p>The <a>Facet</a> structure that is associated with the facet.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetLinkAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetLinkAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetLinkAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves attributes that are associated with a typed link.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/attributes/get",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetLinkAttributesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the Directory where the typed link resides. For more information, see <a>arns</a> or <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Allows a typed link specifier to be accepted as input.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeNames": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of attribute names whose values will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level at which to retrieve the attributes on a typed link.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetLinkAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes that are associated with the typed link.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetObjectAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetObjectAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetObjectAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves attributes within a facet that are associated with an object.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/attributes/get",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetObjectAttributesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a> where the object resides.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose attributes will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level at which to retrieve the attributes on an object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                },
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifier for the facet whose attributes will be retrieved. See <a>SchemaFacet</a> for details.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeNames": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>List of attribute names whose values will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetObjectAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes that are associated with the object.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetObjectInformation": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetObjectInformationRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetObjectInformationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves metadata about an object.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/information",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetObjectInformationRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory being retrieved.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level at which to retrieve the object information.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetObjectInformationResponse": {
            "type": "structure",
            "members": {
                "SchemaFacets": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacetList",
                    "traits": {
                        "smithy.api#documentation": "<p>The facets attached to the specified object. Although the response does not include minor version information, the most recently applied minor version of each Facet is in effect. See <a>GetAppliedSchemaVersion</a> for details.</p>"
                    }
                },
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the specified object.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetSchemaAsJson": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetSchemaAsJsonRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetSchemaAsJsonResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves a JSON representation of the schema. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json\">JSON Schema Format</a> for more information.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/json",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetSchemaAsJsonRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the schema to retrieve.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetSchemaAsJsonResponse": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#SchemaName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the retrieved schema.</p>"
                    }
                },
                "Document": {
                    "target": "com.amazonaws.clouddirectory#SchemaJsonDocument",
                    "traits": {
                        "smithy.api#documentation": "<p>The JSON representation of the schema document.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetTypedLinkFacetInformation": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#GetTypedLinkFacetInformationRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#GetTypedLinkFacetInformationResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns the identity attribute order for a specific <a>TypedLinkFacet</a>. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/facet/get",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#GetTypedLinkFacetInformationRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link facet.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#GetTypedLinkFacetInformationResponse": {
            "type": "structure",
            "members": {
                "IdentityAttributeOrder": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed\n      links considers the order that the attributes are defined on the typed link facet. When\n      providing ranges to typed link selection, any inexact ranges must be specified at the end. Any\n      attributes that do not have a range specified are presumed to match the entire range. Filters\n      are interpreted in the order of the attributes on the typed link facet, not the order in which\n      they are supplied to any API calls. For more information about identity attributes, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#IncompatibleSchemaException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates a failure occurred while performing a check for backward compatibility between the specified schema and the schema that is currently applied to the directory.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#IndexAttachment": {
            "type": "structure",
            "members": {
                "IndexedAttributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>The indexed attribute values.</p>"
                    }
                },
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>In response to <a>ListIndex</a>, the <code>ObjectIdentifier</code> of the object attached to the index. In response to <a>ListAttachedIndices</a>, the <code>ObjectIdentifier</code> of the index attached to the object. This field will always contain the <code>ObjectIdentifier</code> of the object on the opposite side of the attachment specified in the query.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents an index and an attached object.</p>"
            }
        },
        "com.amazonaws.clouddirectory#IndexAttachmentList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#IndexAttachment"
            }
        },
        "com.amazonaws.clouddirectory#IndexedAttributeMissingException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>An object has been attempted to be attached to an object that does not have the appropriate attribute value.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InternalServiceException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<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>",
                "smithy.api#error": "server",
                "smithy.api#httpError": 500
            }
        },
        "com.amazonaws.clouddirectory#InvalidArnException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the provided ARN value is not valid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InvalidAttachmentException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that an attempt to make an attachment was invalid. For example, attaching two nodes \n      with a link type that is not applicable to the nodes or attempting to apply a schema to a directory a second time.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InvalidFacetUpdateException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>An attempt to modify a <a>Facet</a> resulted in an invalid schema\n      exception.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InvalidNextTokenException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the <code>NextToken</code> value is not valid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InvalidRuleException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Occurs when any of the rule parameter keys or values are invalid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InvalidSchemaDocException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the provided <code>SchemaDoc</code> value is not valid.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#InvalidTaggingRequestException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Can occur for multiple reasons such as when you tag a resource that doesn’t exist or if you specify a higher number of tags for a resource than the allowed limit. Allowed limit is 50 tags per resource.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#LimitExceededException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<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>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#LinkAttributeAction": {
            "type": "structure",
            "members": {
                "AttributeActionType": {
                    "target": "com.amazonaws.clouddirectory#UpdateActionType",
                    "traits": {
                        "smithy.api#documentation": "<p>A type that can be either <code>UPDATE_OR_CREATE</code> or <code>DELETE</code>.</p>"
                    }
                },
                "AttributeUpdateValue": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The value that you want to update to.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The action to take on a typed link attribute value. Updates are only supported for attributes which don’t contribute to link identity.</p>"
            }
        },
        "com.amazonaws.clouddirectory#LinkAttributeUpdate": {
            "type": "structure",
            "members": {
                "AttributeKey": {
                    "target": "com.amazonaws.clouddirectory#AttributeKey",
                    "traits": {
                        "smithy.api#documentation": "<p>The key of the attribute being updated.</p>"
                    }
                },
                "AttributeAction": {
                    "target": "com.amazonaws.clouddirectory#LinkAttributeAction",
                    "traits": {
                        "smithy.api#documentation": "<p>The action to perform as part of the attribute update.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Structure that contains attribute update information.</p>"
            }
        },
        "com.amazonaws.clouddirectory#LinkAttributeUpdateList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#LinkAttributeUpdate"
            }
        },
        "com.amazonaws.clouddirectory#LinkName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[^\\/\\[\\]\\(\\):\\{\\}#@!?\\s\\\\;]+$"
            }
        },
        "com.amazonaws.clouddirectory#LinkNameAlreadyInUseException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that a link could not be created due to a naming conflict. Choose a different\n      name and then try again.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#LinkNameToObjectIdentifierMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.clouddirectory#LinkName"
            },
            "value": {
                "target": "com.amazonaws.clouddirectory#ObjectIdentifier"
            }
        },
        "com.amazonaws.clouddirectory#ListAppliedSchemaArns": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListAppliedSchemaArnsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListAppliedSchemaArnsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists schema major versions applied to a directory. If <code>SchemaArn</code> is provided, lists the minor version.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/applied",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListAppliedSchemaArnsRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory you are listing.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The response for <code>ListAppliedSchemaArns</code> when this parameter is used will list all minor version ARNs for a major version.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListAppliedSchemaArnsResponse": {
            "type": "structure",
            "members": {
                "SchemaArns": {
                    "target": "com.amazonaws.clouddirectory#Arns",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARNs of schemas that are applied to the directory.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListAttachedIndices": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListAttachedIndicesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListAttachedIndicesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists indices attached to the specified object.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/indices",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListAttachedIndicesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "TargetReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object that has indices attached.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level to use for this operation.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListAttachedIndicesResponse": {
            "type": "structure",
            "members": {
                "IndexAttachments": {
                    "target": "com.amazonaws.clouddirectory#IndexAttachmentList",
                    "traits": {
                        "smithy.api#documentation": "<p>The indices attached to the specified object.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListDevelopmentSchemaArns": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListDevelopmentSchemaArnsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListDevelopmentSchemaArnsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves each Amazon Resource Name (ARN) of schemas in the development\n      state.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/development",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListDevelopmentSchemaArnsRequest": {
            "type": "structure",
            "members": {
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListDevelopmentSchemaArnsResponse": {
            "type": "structure",
            "members": {
                "SchemaArns": {
                    "target": "com.amazonaws.clouddirectory#Arns",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARNs of retrieved development schemas.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListDirectories": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListDirectoriesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListDirectoriesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists directories created within an account.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/directory/list",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListDirectoriesRequest": {
            "type": "structure",
            "members": {
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                },
                "state": {
                    "target": "com.amazonaws.clouddirectory#DirectoryState",
                    "traits": {
                        "smithy.api#documentation": "<p>The state of the directories in the list. Can be either Enabled, Disabled, or\n      Deleted.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListDirectoriesResponse": {
            "type": "structure",
            "members": {
                "Directories": {
                    "target": "com.amazonaws.clouddirectory#DirectoryList",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists all directories that are associated with your account in pagination\n      fashion.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListFacetAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListFacetAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListFacetAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves attributes attached to the facet.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/facet/attributes",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListFacetAttributesRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the schema where the facet resides.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet whose attributes will be retrieved.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListFacetAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes attached to the facet.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListFacetNames": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListFacetNamesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListFacetNamesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves the names of facets that exist in a schema.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/facet/list",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListFacetNamesRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) to retrieve facet names from.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListFacetNamesResponse": {
            "type": "structure",
            "members": {
                "FacetNames": {
                    "target": "com.amazonaws.clouddirectory#FacetNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>The names of facets that exist within the schema.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListIncomingTypedLinks": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListIncomingTypedLinksRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListIncomingTypedLinksResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of all the incoming <a>TypedLinkSpecifier</a>\n      information for an object. It also supports filtering by typed link facet and identity\n      attributes. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/incoming",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#ListIncomingTypedLinksRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the directory where you want to list the typed\n      links.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "FilterAttributeRanges": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeRangeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides range filters for multiple attributes. When providing ranges to typed link\n      selection, any inexact ranges must be specified at the end. Any attributes that do not have a\n      range specified are presumed to match the entire range.</p>"
                    }
                },
                "FilterTypedLink": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Filters are interpreted in the order of the attributes on the typed link facet, not the\n      order in which they are supplied to any API calls.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level to execute the request at.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListIncomingTypedLinksResponse": {
            "type": "structure",
            "members": {
                "LinkSpecifiers": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns one or more typed link specifiers as output.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListIndex": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListIndexRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListIndexResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotIndexException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists objects attached to the specified index.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/index/targets",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListIndexRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory that the index exists in.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "RangesOnIndexedValues": {
                    "target": "com.amazonaws.clouddirectory#ObjectAttributeRangeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Specifies the ranges of indexed values that you want to query.</p>"
                    }
                },
                "IndexReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference to the index to list.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of objects in a single page to retrieve from the index during a request. For more information, see <a href=\"http://docs.aws.amazon.com/clouddirectory/latest/developerguide/limits.html\">Amazon Cloud Directory Limits</a>.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level to execute the request at.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListIndexResponse": {
            "type": "structure",
            "members": {
                "IndexAttachments": {
                    "target": "com.amazonaws.clouddirectory#IndexAttachmentList",
                    "traits": {
                        "smithy.api#documentation": "<p>The objects and indexed values attached to the index.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListManagedSchemaArns": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListManagedSchemaArnsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListManagedSchemaArnsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the major version families of each managed schema. If a major version ARN is provided as SchemaArn, the minor version revisions in that family are listed instead.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/managed",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListManagedSchemaArnsRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The response for ListManagedSchemaArns. When this parameter is used, all minor version ARNs for a major version are listed.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListManagedSchemaArnsResponse": {
            "type": "structure",
            "members": {
                "SchemaArns": {
                    "target": "com.amazonaws.clouddirectory#Arns",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARNs for all AWS managed schemas.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListObjectAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListObjectAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists all attributes that are associated with an object.\n      </p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/attributes",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectAttributesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where the object resides. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the manner and timing in which the successful write or update of an object\n      is reflected in a subsequent read operation of that same object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                },
                "FacetFilter": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>Used to filter the list of object attributes that are associated with a certain\n      facet.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#AttributeKeyAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>Attributes map that is associated with the object. <code>AttributeArn</code> is the\n      key, and attribute value is the value.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectChildren": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListObjectChildrenRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListObjectChildrenResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotNodeException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of child objects that are associated with a given\n      object.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/children",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectChildrenRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where the object resides. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object for which child objects are being\n      listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the manner and timing in which the successful write or update of an object\n      is reflected in a subsequent read operation of that same object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectChildrenResponse": {
            "type": "structure",
            "members": {
                "Children": {
                    "target": "com.amazonaws.clouddirectory#LinkNameToObjectIdentifierMap",
                    "traits": {
                        "smithy.api#documentation": "<p>Children structure, which is a map with key as the <code>LinkName</code> and\n        <code>ObjectIdentifier</code> as the value.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectParentPaths": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListObjectParentPathsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListObjectParentPathsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Retrieves all available parent paths for any object type such as node, leaf node,\n      policy node, and index node objects. For more information about objects, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directorystructure.html\">Directory Structure</a>.</p>\n         <p>Use this API to evaluate all parents for an object. The call returns all objects from\n      the root of the directory up to the requested object. The API returns the number of paths\n      based on user-defined <code>MaxResults</code>, in case there are multiple paths to the parent.\n      The order of the paths and nodes returned is consistent among multiple API calls unless the\n      objects are deleted or moved. Paths not leading to the directory root are ignored from the\n      target object.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/parentpaths",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectParentPathsRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory to which the parent path applies.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object whose parent paths are listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectParentPathsResponse": {
            "type": "structure",
            "members": {
                "PathToObjectIdentifiersList": {
                    "target": "com.amazonaws.clouddirectory#PathToObjectIdentifiersList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns the path to the <code>ObjectIdentifiers</code> that are associated with the\n      directory.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectParents": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListObjectParentsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListObjectParentsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#CannotListParentOfRootException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists parent objects that are associated with a given object in pagination\n      fashion.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/parent",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectParentsRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where the object resides. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object for which parent objects are being\n      listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the manner and timing in which the successful write or update of an object\n      is reflected in a subsequent read operation of that same object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                },
                "IncludeAllLinksToEachParent": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>When set to True, returns all <a>ListObjectParentsResponse$ParentLinks</a>. There could be multiple links between a parent-child pair.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectParentsResponse": {
            "type": "structure",
            "members": {
                "Parents": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierToLinkNameMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The parent structure, which is a map with key as the <code>ObjectIdentifier</code> and\n      LinkName as the value.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "ParentLinks": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierAndLinkNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a list of parent reference and LinkName Tuples.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectPolicies": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListObjectPoliciesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListObjectPoliciesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns policies attached to an object in pagination fashion.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/object/policy",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectPoliciesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where objects reside. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object for which policies will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the manner and timing in which the successful write or update of an object\n      is reflected in a subsequent read operation of that same object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListObjectPoliciesResponse": {
            "type": "structure",
            "members": {
                "AttachedPolicyIds": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of policy <code>ObjectIdentifiers</code>, that are attached to the\n      object.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListOutgoingTypedLinks": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListOutgoingTypedLinksRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListOutgoingTypedLinksResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of all the outgoing <a>TypedLinkSpecifier</a>\n      information for an object. It also supports filtering by typed link facet and identity\n      attributes. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/outgoing",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#ListOutgoingTypedLinksRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the directory where you want to list the typed\n      links.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference that identifies the object whose attributes will be listed.</p>",
                        "smithy.api#required": {}
                    }
                },
                "FilterAttributeRanges": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeRangeList",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides range filters for multiple attributes. When providing ranges to typed link\n      selection, any inexact ranges must be specified at the end. Any attributes that do not have a\n      range specified are presumed to match the entire range.</p>"
                    }
                },
                "FilterTypedLink": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Filters are interpreted in the order of the attributes defined on the typed link facet,\n      not the order they are supplied to any API calls.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>The consistency level to execute the request at.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListOutgoingTypedLinksResponse": {
            "type": "structure",
            "members": {
                "TypedLinkSpecifiers": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>Returns a typed link specifier as output.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListPolicyAttachments": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListPolicyAttachmentsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListPolicyAttachmentsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#NotPolicyException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns all of the <code>ObjectIdentifiers</code> to which a given policy is attached.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/policy/attachment",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListPolicyAttachmentsRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where objects reside. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "PolicyReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the policy object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                },
                "ConsistencyLevel": {
                    "target": "com.amazonaws.clouddirectory#ConsistencyLevel",
                    "traits": {
                        "smithy.api#documentation": "<p>Represents the manner and timing in which the successful write or update of an object\n      is reflected in a subsequent read operation of that same object.</p>",
                        "smithy.api#httpHeader": "x-amz-consistency-level"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListPolicyAttachmentsResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifiers": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of <code>ObjectIdentifiers</code> to which the policy is attached.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListPublishedSchemaArns": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListPublishedSchemaArnsRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListPublishedSchemaArnsResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists the major version families of each published schema. If a major version ARN is provided as <code>SchemaArn</code>, the minor version revisions in that family are listed instead.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/published",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListPublishedSchemaArnsRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The response for <code>ListPublishedSchemaArns</code> when this parameter is used will list all minor version ARNs for a major version.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListPublishedSchemaArnsResponse": {
            "type": "structure",
            "members": {
                "SchemaArns": {
                    "target": "com.amazonaws.clouddirectory#Arns",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARNs of published schemas.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTagsForResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListTagsForResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListTagsForResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidTaggingRequestException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns tags for a resource. Tagging is currently supported only for directories with a\n      limit of 50 tags per directory. All 50 tags are returned for a given directory with this API\n      call.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/tags",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTagsForResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource. Tagging is only supported for\n      directories.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token. This is for future use. Currently pagination is not supported for\n      tagging.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#TagsNumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>MaxResults</code> parameter sets the maximum number of results returned in a\n      single page. This is for future use and is not supported currently.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTagsForResourceResponse": {
            "type": "structure",
            "members": {
                "Tags": {
                    "target": "com.amazonaws.clouddirectory#TagList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of tag key value pairs that are associated with the response.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to use to retrieve the next page of results. This value is null when there are no more results to return.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTypedLinkFacetAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListTypedLinkFacetAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListTypedLinkFacetAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of all attribute definitions for a particular <a>TypedLinkFacet</a>. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/facet/attributes",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTypedLinkFacetAttributesRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link facet.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTypedLinkFacetAttributesResponse": {
            "type": "structure",
            "members": {
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeDefinitionList",
                    "traits": {
                        "smithy.api#documentation": "<p>An ordered set of attributes associate with the typed link.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTypedLinkFacetNames": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#ListTypedLinkFacetNamesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#ListTypedLinkFacetNamesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Returns a paginated list of <code>TypedLink</code> facet names for a particular schema.\n      For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/facet/list",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTypedLinkFacetNamesRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of results to retrieve.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ListTypedLinkFacetNamesResponse": {
            "type": "structure",
            "members": {
                "FacetNames": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>The names of typed link facets that exist within the schema.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#LookupPolicy": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#LookupPolicyRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#LookupPolicyResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidNextTokenException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Lists all policies from the root of the <a>Directory</a> to the object\n      specified. If there are no policies present, an empty list is returned. If policies are\n      present, and if some objects don't have the policies attached, it returns the <code>ObjectIdentifier</code>\n      for such objects. If policies are present, it returns <code>ObjectIdentifier</code>, <code>policyId</code>, and\n      <code>policyType</code>. Paths that don't lead to the root from the target object are ignored. For more\n      information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/policy/lookup",
                    "code": 200
                },
                "smithy.api#paginated": {
                    "inputToken": "NextToken",
                    "outputToken": "NextToken",
                    "pageSize": "MaxResults"
                }
            }
        },
        "com.amazonaws.clouddirectory#LookupPolicyRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>.\n      For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Reference that identifies the object whose policies will be looked up.</p>",
                        "smithy.api#required": {}
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The token to request the next page of results.</p>"
                    }
                },
                "MaxResults": {
                    "target": "com.amazonaws.clouddirectory#NumberResults",
                    "traits": {
                        "smithy.api#documentation": "<p>The maximum number of items to be retrieved in a single call. This is an approximate\n      number.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#LookupPolicyResponse": {
            "type": "structure",
            "members": {
                "PolicyToPathList": {
                    "target": "com.amazonaws.clouddirectory#PolicyToPathList",
                    "traits": {
                        "smithy.api#documentation": "<p>Provides list of path to policies. Policies contain <code>PolicyId</code>, <code>ObjectIdentifier</code>, and\n      <code>PolicyType</code>. For more\n      information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>"
                    }
                },
                "NextToken": {
                    "target": "com.amazonaws.clouddirectory#NextToken",
                    "traits": {
                        "smithy.api#documentation": "<p>The pagination token.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#NextToken": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#NotIndexException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the requested operation can only operate on index objects.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#NotNodeException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Occurs when any invalid operations are performed on an object that is not a node, such\n      as calling <code>ListObjectChildren</code> for a leaf node object.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#NotPolicyException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the requested operation can only operate on policy objects.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#NumberAttributeValue": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#NumberResults": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 1
                }
            }
        },
        "com.amazonaws.clouddirectory#ObjectAlreadyDetachedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the object is not attached to the index.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#ObjectAttributeAction": {
            "type": "structure",
            "members": {
                "ObjectAttributeActionType": {
                    "target": "com.amazonaws.clouddirectory#UpdateActionType",
                    "traits": {
                        "smithy.api#documentation": "<p>A type that can be either <code>Update</code> or <code>Delete</code>.</p>"
                    }
                },
                "ObjectAttributeUpdateValue": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The value that you want to update to.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The action to take on the object attribute.</p>"
            }
        },
        "com.amazonaws.clouddirectory#ObjectAttributeRange": {
            "type": "structure",
            "members": {
                "AttributeKey": {
                    "target": "com.amazonaws.clouddirectory#AttributeKey",
                    "traits": {
                        "smithy.api#documentation": "<p>The key of the attribute that the attribute range covers.</p>"
                    }
                },
                "Range": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValueRange",
                    "traits": {
                        "smithy.api#documentation": "<p>The range of attribute values being selected.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A range of attributes.</p>"
            }
        },
        "com.amazonaws.clouddirectory#ObjectAttributeRangeList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#ObjectAttributeRange"
            }
        },
        "com.amazonaws.clouddirectory#ObjectAttributeUpdate": {
            "type": "structure",
            "members": {
                "ObjectAttributeKey": {
                    "target": "com.amazonaws.clouddirectory#AttributeKey",
                    "traits": {
                        "smithy.api#documentation": "<p>The key of the attribute being updated.</p>"
                    }
                },
                "ObjectAttributeAction": {
                    "target": "com.amazonaws.clouddirectory#ObjectAttributeAction",
                    "traits": {
                        "smithy.api#documentation": "<p>The action to perform as part of the attribute update.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Structure that contains attribute update information.</p>"
            }
        },
        "com.amazonaws.clouddirectory#ObjectAttributeUpdateList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#ObjectAttributeUpdate"
            }
        },
        "com.amazonaws.clouddirectory#ObjectIdentifier": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#ObjectIdentifierAndLinkNameList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#ObjectIdentifierAndLinkNameTuple"
            }
        },
        "com.amazonaws.clouddirectory#ObjectIdentifierAndLinkNameTuple": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID that is associated with the object.</p>"
                    }
                },
                "LinkName": {
                    "target": "com.amazonaws.clouddirectory#LinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the link between the parent and the child object.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A pair of ObjectIdentifier and LinkName.</p>"
            }
        },
        "com.amazonaws.clouddirectory#ObjectIdentifierList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#ObjectIdentifier"
            }
        },
        "com.amazonaws.clouddirectory#ObjectIdentifierToLinkNameMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.clouddirectory#ObjectIdentifier"
            },
            "value": {
                "target": "com.amazonaws.clouddirectory#LinkName"
            }
        },
        "com.amazonaws.clouddirectory#ObjectNotDetachedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the requested operation cannot be completed because the object has not\n      been detached from the tree.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#ObjectReference": {
            "type": "structure",
            "members": {
                "Selector": {
                    "target": "com.amazonaws.clouddirectory#SelectorObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A path selector supports easy selection of an object by the parent/child links leading to it from the directory root. Use the link names from each parent/child link to construct the path. Path selectors start with a slash (/) and link names are separated by slashes. For more information about paths, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_access_objects.html\">Access Objects</a>. You can identify an object in one of the following ways:</p>\n         <ul>\n            <li>\n               <p>\n                  <i>$ObjectIdentifier</i> - An object identifier is an opaque string provided by Amazon Cloud Directory. When creating objects, the system will provide you with the identifier of the created object. An object’s identifier is immutable and no two objects will ever share the same object identifier. To identify an object with ObjectIdentifier, the ObjectIdentifier must be wrapped in double quotes. </p>\n            </li>\n            <li>\n               <p>\n                  <i>/some/path</i> - Identifies the object based on path</p>\n            </li>\n            <li>\n               <p>\n                  <i>#SomeBatchReference</i> - Identifies the object in a batch call</p>\n            </li>\n         </ul>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The reference that identifies an object.</p>"
            }
        },
        "com.amazonaws.clouddirectory#ObjectType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "NODE",
                        "name": "NODE"
                    },
                    {
                        "value": "LEAF_NODE",
                        "name": "LEAF_NODE"
                    },
                    {
                        "value": "POLICY",
                        "name": "POLICY"
                    },
                    {
                        "value": "INDEX",
                        "name": "INDEX"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#PathString": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#PathToObjectIdentifiers": {
            "type": "structure",
            "members": {
                "Path": {
                    "target": "com.amazonaws.clouddirectory#PathString",
                    "traits": {
                        "smithy.api#documentation": "<p>The path that is used to identify the object starting from directory root.</p>"
                    }
                },
                "ObjectIdentifiers": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifierList",
                    "traits": {
                        "smithy.api#documentation": "<p>Lists <code>ObjectIdentifiers</code> starting from directory root to the object in the\n      request.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Returns the path to the <code>ObjectIdentifiers</code> that is associated with the\n      directory.</p>"
            }
        },
        "com.amazonaws.clouddirectory#PathToObjectIdentifiersList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#PathToObjectIdentifiers"
            }
        },
        "com.amazonaws.clouddirectory#PolicyAttachment": {
            "type": "structure",
            "members": {
                "PolicyId": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The ID of <code>PolicyAttachment</code>.</p>"
                    }
                },
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> that is associated with\n      <code>PolicyAttachment</code>.</p>"
                    }
                },
                "PolicyType": {
                    "target": "com.amazonaws.clouddirectory#PolicyType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of policy that can be associated with <code>PolicyAttachment</code>.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains the <code>PolicyType</code>, <code>PolicyId</code>, and the <code>ObjectIdentifier</code> to which it is\n      attached. For more\n      information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/key_concepts_directory.html#key_concepts_policies\">Policies</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#PolicyAttachmentList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#PolicyAttachment"
            }
        },
        "com.amazonaws.clouddirectory#PolicyToPath": {
            "type": "structure",
            "members": {
                "Path": {
                    "target": "com.amazonaws.clouddirectory#PathString",
                    "traits": {
                        "smithy.api#documentation": "<p>The path that is referenced from the root.</p>"
                    }
                },
                "Policies": {
                    "target": "com.amazonaws.clouddirectory#PolicyAttachmentList",
                    "traits": {
                        "smithy.api#documentation": "<p>List of policy objects.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Used when a regular object exists in a <a>Directory</a> and you want to find\n      all of the policies that are associated with that object and the parent to that\n      object.</p>"
            }
        },
        "com.amazonaws.clouddirectory#PolicyToPathList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#PolicyToPath"
            }
        },
        "com.amazonaws.clouddirectory#PolicyType": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#PublishSchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#PublishSchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#PublishSchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#SchemaAlreadyPublishedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Publishes a development schema with a major version and a recommended minor version.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/publish",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#PublishSchemaRequest": {
            "type": "structure",
            "members": {
                "DevelopmentSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the development schema. For\n      more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Version": {
                    "target": "com.amazonaws.clouddirectory#Version",
                    "traits": {
                        "smithy.api#documentation": "<p>The major version under which the schema will be published. Schemas have both a major and minor version associated with them.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MinorVersion": {
                    "target": "com.amazonaws.clouddirectory#Version",
                    "traits": {
                        "smithy.api#documentation": "<p>The minor version under which the schema will be published. This parameter is recommended. Schemas have both a major and minor version associated with them.</p>"
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#SchemaName",
                    "traits": {
                        "smithy.api#documentation": "<p>The new name under which the schema will be published. If this is not provided, the\n      development schema is considered.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#PublishSchemaResponse": {
            "type": "structure",
            "members": {
                "PublishedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN that is associated with the published schema. For more information, see <a>arns</a>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#PutSchemaFromJson": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#PutSchemaFromJsonRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#PutSchemaFromJsonResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidRuleException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidSchemaDocException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Allows a schema to be updated using JSON upload. Only available for development schemas. See <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_jsonformat.html#schemas_json\">JSON Schema Format</a> for more information.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/json",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#PutSchemaFromJsonRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the schema to update.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Document": {
                    "target": "com.amazonaws.clouddirectory#SchemaJsonDocument",
                    "traits": {
                        "smithy.api#documentation": "<p>The replacement JSON schema.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#PutSchemaFromJsonResponse": {
            "type": "structure",
            "members": {
                "Arn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the schema to update.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#RangeMode": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "FIRST",
                        "name": "FIRST"
                    },
                    {
                        "value": "LAST",
                        "name": "LAST"
                    },
                    {
                        "value": "LAST_BEFORE_MISSING_VALUES",
                        "name": "LAST_BEFORE_MISSING_VALUES"
                    },
                    {
                        "value": "INCLUSIVE",
                        "name": "INCLUSIVE"
                    },
                    {
                        "value": "EXCLUSIVE",
                        "name": "EXCLUSIVE"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#RemoveFacetFromObject": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#RemoveFacetFromObjectRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#RemoveFacetFromObjectResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Removes the specified facet from the specified object.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object/facets/delete",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#RemoveFacetFromObjectRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory in which the object resides.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "SchemaFacet": {
                    "target": "com.amazonaws.clouddirectory#SchemaFacet",
                    "traits": {
                        "smithy.api#documentation": "<p>The facet to remove. See <a>SchemaFacet</a> for details.</p>",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>A reference to the object to remove the facet from.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#RemoveFacetFromObjectResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#RequiredAttributeBehavior": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "REQUIRED_ALWAYS",
                        "name": "REQUIRED_ALWAYS"
                    },
                    {
                        "value": "NOT_REQUIRED",
                        "name": "NOT_REQUIRED"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#ResourceNotFoundException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The specified resource could not be found.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 404
            }
        },
        "com.amazonaws.clouddirectory#RetryableConflictException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<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>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 409
            }
        },
        "com.amazonaws.clouddirectory#Rule": {
            "type": "structure",
            "members": {
                "Type": {
                    "target": "com.amazonaws.clouddirectory#RuleType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of attribute validation rule.</p>"
                    }
                },
                "Parameters": {
                    "target": "com.amazonaws.clouddirectory#RuleParameterMap",
                    "traits": {
                        "smithy.api#documentation": "<p>The minimum and maximum parameters that are associated with the rule.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains an Amazon Resource Name (ARN) and parameters that are associated with the\n      rule.</p>"
            }
        },
        "com.amazonaws.clouddirectory#RuleKey": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 64
                },
                "smithy.api#pattern": "^[a-zA-Z0-9._-]*$"
            }
        },
        "com.amazonaws.clouddirectory#RuleMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.clouddirectory#RuleKey"
            },
            "value": {
                "target": "com.amazonaws.clouddirectory#Rule"
            }
        },
        "com.amazonaws.clouddirectory#RuleParameterKey": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#RuleParameterMap": {
            "type": "map",
            "key": {
                "target": "com.amazonaws.clouddirectory#RuleParameterKey"
            },
            "value": {
                "target": "com.amazonaws.clouddirectory#RuleParameterValue"
            }
        },
        "com.amazonaws.clouddirectory#RuleParameterValue": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#RuleType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "BINARY_LENGTH",
                        "name": "BINARY_LENGTH"
                    },
                    {
                        "value": "NUMBER_COMPARISON",
                        "name": "NUMBER_COMPARISON"
                    },
                    {
                        "value": "STRING_FROM_SET",
                        "name": "STRING_FROM_SET"
                    },
                    {
                        "value": "STRING_LENGTH",
                        "name": "STRING_LENGTH"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#SchemaAlreadyExistsException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that a schema could not be created due to a naming conflict. Please select a\n      different name and then try again.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#SchemaAlreadyPublishedException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that a schema is already published.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#SchemaFacet": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the schema that contains the facet with no minor component. See <a>arns</a> and <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/schemas_inplaceschemaupgrade.html\">In-Place Schema Upgrade</a> for a description of when to provide minor versions.\n     If this value is set, FacetName must also be set.</p>"
                    }
                },
                "FacetName": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet. If this value is set, SchemaArn must also be set.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A facet.</p>"
            }
        },
        "com.amazonaws.clouddirectory#SchemaFacetList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#SchemaFacet"
            }
        },
        "com.amazonaws.clouddirectory#SchemaJsonDocument": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#SchemaName": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 32
                },
                "smithy.api#pattern": "^[a-zA-Z0-9._-]*$"
            }
        },
        "com.amazonaws.clouddirectory#SelectorObjectReference": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#StillContainsLinksException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The object could not be deleted because links still exist. Remove the links and then\n      try the operation again.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#StringAttributeValue": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#Tag": {
            "type": "structure",
            "members": {
                "Key": {
                    "target": "com.amazonaws.clouddirectory#TagKey",
                    "traits": {
                        "smithy.api#documentation": "<p>The key that is associated with the tag.</p>"
                    }
                },
                "Value": {
                    "target": "com.amazonaws.clouddirectory#TagValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The value that is associated with the tag.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>The tag structure that contains a tag key and value.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TagKey": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#TagKeyList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#TagKey"
            }
        },
        "com.amazonaws.clouddirectory#TagList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#Tag"
            }
        },
        "com.amazonaws.clouddirectory#TagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#TagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#TagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidTaggingRequestException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>An API operation for adding tags to a resource.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/tags/add",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#TagResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource. Tagging is only supported for\n      directories.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Tags": {
                    "target": "com.amazonaws.clouddirectory#TagList",
                    "traits": {
                        "smithy.api#documentation": "<p>A list of tag key-value pairs.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#TagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#TagValue": {
            "type": "string"
        },
        "com.amazonaws.clouddirectory#TagsNumberResults": {
            "type": "integer",
            "traits": {
                "smithy.api#box": {},
                "smithy.api#range": {
                    "min": 50
                }
            }
        },
        "com.amazonaws.clouddirectory#TypedAttributeValue": {
            "type": "union",
            "members": {
                "StringValue": {
                    "target": "com.amazonaws.clouddirectory#StringAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>A string data value.</p>"
                    }
                },
                "BinaryValue": {
                    "target": "com.amazonaws.clouddirectory#BinaryAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>A binary data value.</p>"
                    }
                },
                "BooleanValue": {
                    "target": "com.amazonaws.clouddirectory#BooleanAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>A Boolean data value.</p>"
                    }
                },
                "NumberValue": {
                    "target": "com.amazonaws.clouddirectory#NumberAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>A number data value.</p>"
                    }
                },
                "DatetimeValue": {
                    "target": "com.amazonaws.clouddirectory#DatetimeAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>A date and time value.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Represents the data for a typed attribute. You can set one, and only one, of the\n      elements. Each attribute in an item is a name-value pair. Attributes have a single\n      value.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedAttributeValueRange": {
            "type": "structure",
            "members": {
                "StartMode": {
                    "target": "com.amazonaws.clouddirectory#RangeMode",
                    "traits": {
                        "smithy.api#documentation": "<p>The inclusive or exclusive range start.</p>",
                        "smithy.api#required": {}
                    }
                },
                "StartValue": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The value to start the range at.</p>"
                    }
                },
                "EndMode": {
                    "target": "com.amazonaws.clouddirectory#RangeMode",
                    "traits": {
                        "smithy.api#documentation": "<p>The inclusive or exclusive range end.</p>",
                        "smithy.api#required": {}
                    }
                },
                "EndValue": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The attribute value to terminate the range at.</p>"
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A range of attribute values. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_range_filters.html\">Range Filters</a>.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkAttributeDefinition": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#AttributeName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link attribute.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Type": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeType",
                    "traits": {
                        "smithy.api#documentation": "<p>The type of the attribute.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DefaultValue": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValue",
                    "traits": {
                        "smithy.api#documentation": "<p>The default value of the attribute (if configured).</p>"
                    }
                },
                "IsImmutable": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>Whether the attribute is mutable or not.</p>"
                    }
                },
                "Rules": {
                    "target": "com.amazonaws.clouddirectory#RuleMap",
                    "traits": {
                        "smithy.api#documentation": "<p>Validation rules that are attached to the attribute definition.</p>"
                    }
                },
                "RequiredBehavior": {
                    "target": "com.amazonaws.clouddirectory#RequiredAttributeBehavior",
                    "traits": {
                        "smithy.api#documentation": "<p>The required behavior of the <code>TypedLinkAttributeDefinition</code>.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A typed link attribute definition.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkAttributeDefinitionList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#TypedLinkAttributeDefinition"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkAttributeRange": {
            "type": "structure",
            "members": {
                "AttributeName": {
                    "target": "com.amazonaws.clouddirectory#AttributeName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link attribute.</p>"
                    }
                },
                "Range": {
                    "target": "com.amazonaws.clouddirectory#TypedAttributeValueRange",
                    "traits": {
                        "smithy.api#documentation": "<p>The range of attribute values that are being selected.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Identifies the range of attributes that are used by a specified filter.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkAttributeRangeList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#TypedLinkAttributeRange"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkFacet": {
            "type": "structure",
            "members": {
                "Name": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link facet.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Attributes": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeDefinitionList",
                    "traits": {
                        "smithy.api#documentation": "<p>A set of key-value pairs associated with the typed link. Typed link attributes are used when you have data values that are related to the link itself, and not to one of the two objects being linked. Identity attributes also serve to distinguish the link from others of the same type between the same objects.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IdentityAttributeOrder": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>The set of attributes that distinguish links made from this facet from each other, in the order of significance. Listing typed links can filter on the values of these attributes. See <a>ListOutgoingTypedLinks</a> and <a>ListIncomingTypedLinks</a> for details.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Defines the typed links structure and its attributes. To create a typed link facet, use\n      the <a>CreateTypedLinkFacet</a> API.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkFacetAttributeUpdate": {
            "type": "structure",
            "members": {
                "Attribute": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkAttributeDefinition",
                    "traits": {
                        "smithy.api#documentation": "<p>The attribute to update.</p>",
                        "smithy.api#required": {}
                    }
                },
                "Action": {
                    "target": "com.amazonaws.clouddirectory#UpdateActionType",
                    "traits": {
                        "smithy.api#documentation": "<p>The action to perform when updating the attribute.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>A typed link facet attribute update.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkFacetAttributeUpdateList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#TypedLinkFacetAttributeUpdate"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkName": {
            "type": "string",
            "traits": {
                "smithy.api#pattern": "^[a-zA-Z0-9._-]*$"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkNameList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#TypedLinkName"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TypedLinkName": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link facet.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Identifies the schema Amazon Resource Name (ARN) and facet name for the typed\n      link.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkSpecifier": {
            "type": "structure",
            "members": {
                "TypedLinkFacet": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSchemaAndFacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the typed link facet that is associated with the typed link.</p>",
                        "smithy.api#required": {}
                    }
                },
                "SourceObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the source object that the typed link will attach to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TargetObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the target object that the typed link will attach to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IdentityAttributeValues": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameAndValueList",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the attribute value to update.</p>",
                        "smithy.api#required": {}
                    }
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Contains all the information that is used to uniquely identify a typed link. The\n      parameters discussed in this topic are used to uniquely specify the typed link being operated\n      on. The <a>AttachTypedLink</a> API returns a typed link specifier while the <a>DetachTypedLink</a> API accepts one as input. Similarly, the <a>ListIncomingTypedLinks</a> and <a>ListOutgoingTypedLinks</a> API\n      operations provide typed link specifiers as output. You can also construct a typed link\n      specifier from scratch.</p>"
            }
        },
        "com.amazonaws.clouddirectory#TypedLinkSpecifierList": {
            "type": "list",
            "member": {
                "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier"
            }
        },
        "com.amazonaws.clouddirectory#UnsupportedIndexTypeException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that the requested index type is not supported.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#UntagResource": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UntagResourceRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UntagResourceResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidTaggingRequestException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>An API operation for removing tags from a resource.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/tags/remove",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UntagResourceRequest": {
            "type": "structure",
            "members": {
                "ResourceArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the resource. Tagging is only supported for\n      directories.</p>",
                        "smithy.api#required": {}
                    }
                },
                "TagKeys": {
                    "target": "com.amazonaws.clouddirectory#TagKeyList",
                    "traits": {
                        "smithy.api#documentation": "<p>Keys of the tag that need to be removed from the resource.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UntagResourceResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#UpdateActionType": {
            "type": "string",
            "traits": {
                "smithy.api#enum": [
                    {
                        "value": "CREATE_OR_UPDATE",
                        "name": "CREATE_OR_UPDATE"
                    },
                    {
                        "value": "DELETE",
                        "name": "DELETE"
                    }
                ]
            }
        },
        "com.amazonaws.clouddirectory#UpdateFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpdateFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpdateFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidFacetUpdateException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidRuleException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Does the following:</p>\n         <ol>\n            <li>\n               <p>Adds new <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>.</p>\n            </li>\n            <li>\n               <p>Updates existing <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>.</p>\n            </li>\n            <li>\n               <p>Deletes existing <code>Attributes</code>, <code>Rules</code>, or <code>ObjectTypes</code>.</p>\n            </li>\n         </ol>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/facet",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Facet</a>.\n      For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#FacetName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the facet.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeUpdates": {
                    "target": "com.amazonaws.clouddirectory#FacetAttributeUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>List of attributes that need to be updated in a given schema <a>Facet</a>.\n      Each attribute is followed by <code>AttributeAction</code>, which specifies the type of update\n      operation to perform. </p>"
                    }
                },
                "ObjectType": {
                    "target": "com.amazonaws.clouddirectory#ObjectType",
                    "traits": {
                        "smithy.api#documentation": "<p>The object type that is associated with the facet. See <a>CreateFacetRequest$ObjectType</a> for more details.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateFacetResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#UpdateLinkAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpdateLinkAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpdateLinkAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates a given typed link’s attributes. Attributes to be updated must not contribute to the typed link’s identity, as defined by its <code>IdentityAttributeOrder</code>.</p>",
                "smithy.api#http": {
                    "method": "POST",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/attributes/update",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateLinkAttributesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the Directory where the updated typed link resides. For more information, see <a>arns</a> or <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "TypedLinkSpecifier": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkSpecifier",
                    "traits": {
                        "smithy.api#documentation": "<p>Allows a typed link specifier to be accepted as input.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeUpdates": {
                    "target": "com.amazonaws.clouddirectory#LinkAttributeUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes update structure.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateLinkAttributesResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#UpdateObjectAttributes": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpdateObjectAttributesRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpdateObjectAttributesResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#DirectoryNotEnabledException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LinkNameAlreadyInUseException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates a given object's attributes.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/object/update",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateObjectAttributesRequest": {
            "type": "structure",
            "members": {
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the <a>Directory</a>\n      where the object resides. For more information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "ObjectReference": {
                    "target": "com.amazonaws.clouddirectory#ObjectReference",
                    "traits": {
                        "smithy.api#documentation": "<p>The reference that identifies the object.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeUpdates": {
                    "target": "com.amazonaws.clouddirectory#ObjectAttributeUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>The attributes update structure.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateObjectAttributesResponse": {
            "type": "structure",
            "members": {
                "ObjectIdentifier": {
                    "target": "com.amazonaws.clouddirectory#ObjectIdentifier",
                    "traits": {
                        "smithy.api#documentation": "<p>The <code>ObjectIdentifier</code> of the updated object.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateSchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpdateSchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpdateSchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates the schema name with a new name. Only development schema names can be\n      updated.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/update",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateSchemaRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) of the development schema. For more information, see\n        <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#SchemaName",
                    "traits": {
                        "smithy.api#documentation": "<p>The name of the schema.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateSchemaResponse": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN that is associated with the updated schema. For more information, see <a>arns</a>.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateTypedLinkFacet": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpdateTypedLinkFacetRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpdateTypedLinkFacetResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#FacetValidationException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidFacetUpdateException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidRuleException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Updates a <a>TypedLinkFacet</a>. For more information, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/typedlink/facet",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateTypedLinkFacetRequest": {
            "type": "structure",
            "members": {
                "SchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The Amazon Resource Name (ARN) that is associated with the schema. For more\n      information, see <a>arns</a>.</p>",
                        "smithy.api#httpHeader": "x-amz-data-partition",
                        "smithy.api#required": {}
                    }
                },
                "Name": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkName",
                    "traits": {
                        "smithy.api#documentation": "<p>The unique name of the typed link facet.</p>",
                        "smithy.api#required": {}
                    }
                },
                "AttributeUpdates": {
                    "target": "com.amazonaws.clouddirectory#TypedLinkFacetAttributeUpdateList",
                    "traits": {
                        "smithy.api#documentation": "<p>Attributes update structure.</p>",
                        "smithy.api#required": {}
                    }
                },
                "IdentityAttributeOrder": {
                    "target": "com.amazonaws.clouddirectory#AttributeNameList",
                    "traits": {
                        "smithy.api#documentation": "<p>The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed\n      links considers the order that the attributes are defined on the typed link facet.  When\n      providing ranges to a typed link selection, any inexact ranges must be specified at the end.\n      Any attributes that do not have a range specified are presumed to match the entire range.\n      Filters are interpreted in the order of the attributes on the typed link facet, not the order\n      in which they are supplied to any API calls. For more information about identity attributes, see <a href=\"https://docs.aws.amazon.com/clouddirectory/latest/developerguide/directory_objects_links.html#directory_objects_links_typedlink\">Typed Links</a>.</p>",
                        "smithy.api#required": {}
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpdateTypedLinkFacetResponse": {
            "type": "structure",
            "members": {}
        },
        "com.amazonaws.clouddirectory#UpgradeAppliedSchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpgradeAppliedSchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpgradeAppliedSchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#IncompatibleSchemaException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidAttachmentException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#SchemaAlreadyExistsException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Upgrades a single directory in-place using the <code>PublishedSchemaArn</code> with schema updates found in <code>MinorVersion</code>. Backwards-compatible minor version upgrades are instantaneously available for readers on all objects in the directory. Note: This is a synchronous API call and upgrades only one schema on a given directory per call. To upgrade multiple directories from one schema, you would need to call this API on each directory.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/upgradeapplied",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpgradeAppliedSchemaRequest": {
            "type": "structure",
            "members": {
                "PublishedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The revision of the published schema to upgrade the directory to.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN for the directory to which the upgraded schema will be applied.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DryRun": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>Used for testing whether the major version schemas are backward compatible or not. If schema compatibility fails, an exception would be thrown else the call would succeed but no changes will be saved. This parameter is optional.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpgradeAppliedSchemaResponse": {
            "type": "structure",
            "members": {
                "UpgradedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the upgraded schema that is returned as part of the response.</p>"
                    }
                },
                "DirectoryArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the directory that is returned as part of the response.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpgradePublishedSchema": {
            "type": "operation",
            "input": {
                "target": "com.amazonaws.clouddirectory#UpgradePublishedSchemaRequest"
            },
            "output": {
                "target": "com.amazonaws.clouddirectory#UpgradePublishedSchemaResponse"
            },
            "errors": [
                {
                    "target": "com.amazonaws.clouddirectory#AccessDeniedException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#IncompatibleSchemaException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InternalServiceException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidArnException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#InvalidAttachmentException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#LimitExceededException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ResourceNotFoundException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#RetryableConflictException"
                },
                {
                    "target": "com.amazonaws.clouddirectory#ValidationException"
                }
            ],
            "traits": {
                "smithy.api#documentation": "<p>Upgrades a published schema under a new minor version revision using the current contents of <code>DevelopmentSchemaArn</code>.</p>",
                "smithy.api#http": {
                    "method": "PUT",
                    "uri": "/amazonclouddirectory/2017-01-11/schema/upgradepublished",
                    "code": 200
                }
            }
        },
        "com.amazonaws.clouddirectory#UpgradePublishedSchemaRequest": {
            "type": "structure",
            "members": {
                "DevelopmentSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the development schema with the changes used for the upgrade.</p>",
                        "smithy.api#required": {}
                    }
                },
                "PublishedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the published schema to be upgraded.</p>",
                        "smithy.api#required": {}
                    }
                },
                "MinorVersion": {
                    "target": "com.amazonaws.clouddirectory#Version",
                    "traits": {
                        "smithy.api#documentation": "<p>Identifies the minor version of the published schema that will be created. This parameter is NOT optional.</p>",
                        "smithy.api#required": {}
                    }
                },
                "DryRun": {
                    "target": "com.amazonaws.clouddirectory#Bool",
                    "traits": {
                        "smithy.api#documentation": "<p>Used for testing whether the Development schema provided is backwards compatible, or not, with the publish schema provided by the user to be upgraded. If schema compatibility fails, an exception would be thrown else the call would succeed. This parameter is optional and defaults to false.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#UpgradePublishedSchemaResponse": {
            "type": "structure",
            "members": {
                "UpgradedSchemaArn": {
                    "target": "com.amazonaws.clouddirectory#Arn",
                    "traits": {
                        "smithy.api#documentation": "<p>The ARN of the upgraded schema that is returned as part of the response.</p>"
                    }
                }
            }
        },
        "com.amazonaws.clouddirectory#ValidationException": {
            "type": "structure",
            "members": {
                "Message": {
                    "target": "com.amazonaws.clouddirectory#ExceptionMessage"
                }
            },
            "traits": {
                "smithy.api#documentation": "<p>Indicates that your request is malformed in some manner. See the exception\n      message.</p>",
                "smithy.api#error": "client",
                "smithy.api#httpError": 400
            }
        },
        "com.amazonaws.clouddirectory#Version": {
            "type": "string",
            "traits": {
                "smithy.api#length": {
                    "min": 1,
                    "max": 10
                },
                "smithy.api#pattern": "^[a-zA-Z0-9._-]*$"
            }
        }
    }
}
