export interface SchemaFacet {
    /** The ARN of the schema that contains the facet with no minor component. See arns and In-Place Schema Upgrade for a description of when to provide minor versions. If this value is set, FacetName must al */
    SchemaArn?: string;
    /** The name of the facet. If this value is set, SchemaArn must also be set. */
    FacetName?: string;
}
export interface AttributeKeyAndValue {
    /** The key of the attribute. */
    Key: any;
    /** The value of the attribute. */
    Value: any;
}
export interface ObjectReference {
    /** 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 selecto */
    Selector?: string;
}
export interface TypedLinkSchemaAndFacetName {
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
    /** The unique name of the typed link facet. */
    TypedLinkName: string;
}
export interface AttributeNameAndValue {
    /** The attribute name of the typed link. */
    AttributeName: string;
    /** The value for the typed link. */
    Value: any;
}
export interface BatchReadOperation {
    /** Lists all attributes that are associated with an object. */
    ListObjectAttributes?: any;
    /** Returns a paginated list of child objects that are associated with a given object. */
    ListObjectChildren?: any;
    /** Lists indices attached to an object. */
    ListAttachedIndices?: any;
    /** Retrieves all available parent paths for any object type such as node, leaf node, policy node, and index node objects. For more information about objects, see Directory Structure. */
    ListObjectParentPaths?: any;
    /** Retrieves metadata about an object. */
    GetObjectInformation?: any;
    /** Retrieves attributes within a facet that are associated with an object. */
    GetObjectAttributes?: any;
    /** Lists parent objects that are associated with a given object in pagination fashion. */
    ListObjectParents?: any;
    /** Returns policies attached to an object in pagination fashion. */
    ListObjectPolicies?: any;
    /** Returns all of the ObjectIdentifiers to which a given policy is attached. */
    ListPolicyAttachments?: any;
    /** Lists all policies from the root of the Directory to the object specified. If there are no policies present, an empty list is returned. If policies are present, and if some objects don't have the poli */
    LookupPolicy?: any;
    /** Lists objects attached to the specified index. */
    ListIndex?: any;
    /** Returns a paginated list of all the outgoing TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links */
    ListOutgoingTypedLinks?: any;
    /** Returns a paginated list of all the incoming TypedLinkSpecifier information for an object. It also supports filtering by typed link facet and identity attributes. For more information, see Typed Links */
    ListIncomingTypedLinks?: any;
    /** Retrieves attributes that are associated with a typed link. */
    GetLinkAttributes?: any;
}
export interface BatchWriteOperation {
    /** Creates an object. */
    CreateObject?: any;
    /** Attaches an object to a Directory. */
    AttachObject?: any;
    /** Detaches an object from a Directory. */
    DetachObject?: any;
    /** Updates a given object's attributes. */
    UpdateObjectAttributes?: any;
    /** Deletes an object in a Directory. */
    DeleteObject?: any;
    /** A batch operation that adds a facet to an object. */
    AddFacetToObject?: any;
    /** A batch operation that removes a facet from an object. */
    RemoveFacetFromObject?: any;
    /** Attaches a policy object to a regular object. An object can have a limited number of attached policies. */
    AttachPolicy?: any;
    /** Detaches a policy from a Directory. */
    DetachPolicy?: any;
    /** Creates an index object. See Indexing and search for more information. */
    CreateIndex?: any;
    /** Attaches the specified object to the specified index. */
    AttachToIndex?: any;
    /** Detaches the specified object from the specified index. */
    DetachFromIndex?: any;
    /** Attaches a typed link to a specified source and target object. For more information, see Typed Links. */
    AttachTypedLink?: any;
    /** Detaches a typed link from a specified source and target object. For more information, see Typed Links. */
    DetachTypedLink?: any;
    /** Updates a given object's attributes. */
    UpdateLinkAttributes?: any;
}
export interface FacetAttribute {
    /** The name of the facet attribute. */
    Name: string;
    /** A facet attribute consists of either a definition or a reference. This structure contains the attribute definition. See Attribute References for more information. */
    AttributeDefinition?: any;
    /** An attribute reference that is associated with the attribute. See Attribute References for more information. */
    AttributeReference?: any;
    /** The required behavior of the FacetAttribute. */
    RequiredBehavior?: 'REQUIRED_ALWAYS' | 'NOT_REQUIRED';
}
export interface AttributeKey {
    /** The Amazon Resource Name (ARN) of the schema that contains the facet and attribute. */
    SchemaArn: string;
    /** The name of the facet that the attribute exists within. */
    FacetName: string;
    /** The name of the attribute. */
    Name: string;
}
export interface TypedLinkFacet {
    /** The unique name of the typed link facet. */
    Name: string;
    /** 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. I */
    Attributes: any[];
    /** 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 ListOutgoingTyped */
    IdentityAttributeOrder: string[];
}
export interface TypedLinkSpecifier {
    /** Identifies the typed link facet that is associated with the typed link. */
    TypedLinkFacet: TypedLinkSchemaAndFacetName;
    /** Identifies the source object that the typed link will attach to. */
    SourceObjectReference: ObjectReference;
    /** Identifies the target object that the typed link will attach to. */
    TargetObjectReference: ObjectReference;
    /** Identifies the attribute value to update. */
    IdentityAttributeValues: any[];
}
export interface TypedLinkAttributeRange {
    /** The unique name of the typed link attribute. */
    AttributeName?: string;
    /** The range of attribute values that are being selected. */
    Range: any;
}
export interface ObjectAttributeRange {
    /** The key of the attribute that the attribute range covers. */
    AttributeKey?: any;
    /** The range of attribute values being selected. */
    Range?: any;
}
export interface Tag {
    /** The key that is associated with the tag. */
    Key?: string;
    /** The value that is associated with the tag. */
    Value?: string;
}
export interface FacetAttributeUpdate {
    /** The attribute to update. */
    Attribute?: any;
    /** The action to perform when updating the attribute. */
    Action?: 'CREATE_OR_UPDATE' | 'DELETE';
}
export interface LinkAttributeUpdate {
    /** The key of the attribute being updated. */
    AttributeKey?: any;
    /** The action to perform as part of the attribute update. */
    AttributeAction?: any;
}
export interface ObjectAttributeUpdate {
    /** The key of the attribute being updated. */
    ObjectAttributeKey?: any;
    /** The action to perform as part of the attribute update. */
    ObjectAttributeAction?: any;
}
export interface TypedLinkFacetAttributeUpdate {
    /** The attribute to update. */
    Attribute: any;
    /** The action to perform when updating the attribute. */
    Action: 'CREATE_OR_UPDATE' | 'DELETE';
}
export interface AddFacetToObjectInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. */
    DirectoryArn: string;
    /** A reference to the object you are adding the specified facet to. */
    ObjectReference: ObjectReference;
    /** Identifiers for the facet that you are adding to the object. See SchemaFacet for details. */
    SchemaFacet: SchemaFacet;
    /** Attributes on the facet that you are adding to the object. */
    ObjectAttributeList?: AttributeKeyAndValue[];
}
export interface ApplySchemaInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory into which the schema is copied. For more information, see arns. */
    DirectoryArn: string;
    /** Published schema Amazon Resource Name (ARN) that needs to be copied. For more information, see arns. */
    PublishedSchemaArn: string;
}
export interface AttachObjectInput {
    /** The child object reference to be attached to the object. */
    ChildReference: ObjectReference;
    /** Amazon Resource Name (ARN) that is associated with the Directory where both objects reside. For more information, see arns. */
    DirectoryArn: string;
    /** The link name with which the child object is attached to the parent. */
    LinkName: string;
    /** The parent object reference. */
    ParentReference: ObjectReference;
}
export interface AttachPolicyInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where both objects reside. For more information, see arns. */
    DirectoryArn: string;
    /** The reference that identifies the object to which the policy will be attached. */
    ObjectReference: ObjectReference;
    /** The reference that is associated with the policy object. */
    PolicyReference: ObjectReference;
}
export interface AttachToIndexInput {
    /** The Amazon Resource Name (ARN) of the directory where the object and index exist. */
    DirectoryArn: string;
    /** A reference to the index that you are attaching the object to. */
    IndexReference: ObjectReference;
    /** A reference to the object that you are attaching to the index. */
    TargetReference: ObjectReference;
}
export interface AttachTypedLinkInput {
    /** A set of attributes that are associated with the typed link. */
    Attributes: AttributeNameAndValue[];
    /** The Amazon Resource Name (ARN) of the directory where you want to attach the typed link. */
    DirectoryArn: string;
    /** Identifies the source object that the typed link will attach to. */
    SourceObjectReference: ObjectReference;
    /** Identifies the target object that the typed link will attach to. */
    TargetObjectReference: ObjectReference;
    /** Identifies the typed link facet that is associated with the typed link. */
    TypedLinkFacet: TypedLinkSchemaAndFacetName;
}
export interface BatchReadInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory. For more information, see arns. */
    DirectoryArn: string;
    /** A list of operations that are part of the batch. */
    Operations: BatchReadOperation[];
    /** Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
}
export interface BatchWriteInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory. For more information, see arns. */
    DirectoryArn: string;
    /** A list of operations that are part of the batch. */
    Operations: BatchWriteOperation[];
}
export interface CreateDirectoryInput {
    /** The name of the Directory. Should be unique per account, per region. */
    Name: string;
    /** The Amazon Resource Name (ARN) of the published schema that will be copied into the data Directory. For more information, see arns. */
    SchemaArn: string;
}
export interface CreateFacetInput {
    /** The name of the Facet, which is unique for a given schema. */
    Name: string;
    /** The schema ARN in which the new Facet will be created. For more information, see arns. */
    SchemaArn: string;
    /** The attributes that are associated with the Facet. */
    Attributes?: FacetAttribute[];
    /** There are two different styles that you can define on any given facet, Static and Dynamic. For static facets, all attributes must be defined in the schema. For dynamic facets, attributes can be define */
    FacetStyle?: 'STATIC' | 'DYNAMIC';
    /** Specifies whether a given object created from this facet is of type node, leaf node, policy or index. Node: Can have multiple children but one parent. Leaf node: Cannot have children but can have mult */
    ObjectType?: 'NODE' | 'LEAF_NODE' | 'POLICY' | 'INDEX';
}
export interface CreateIndexInput {
    /** The ARN of the directory where the index should be created. */
    DirectoryArn: string;
    /** Indicates whether the attribute that is being indexed has unique values or not. */
    IsUnique: boolean;
    /** Specifies the attributes that should be indexed on. Currently only a single attribute is supported. */
    OrderedIndexedAttributeList: AttributeKey[];
    /** The name of the link between the parent object and the index object. */
    LinkName?: string;
    /** A reference to the parent object that contains the index object. */
    ParentReference?: ObjectReference;
}
export interface CreateObjectInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory in which the object will be created. For more information, see arns. */
    DirectoryArn: string;
    /** A list of schema facets to be associated with the object. Do not provide minor version components. See SchemaFacet for details. */
    SchemaFacets: SchemaFacet[];
    /** The name of link that is used to attach this object to a parent. */
    LinkName?: string;
    /** The attribute map whose attribute ARN contains the key and attribute value as the map value. */
    ObjectAttributeList?: AttributeKeyAndValue[];
    /** If specified, the parent reference to which this object will be attached. */
    ParentReference?: ObjectReference;
}
export interface CreateSchemaInput {
    /** The name that is associated with the schema. This is unique to each account and in each region. */
    Name: string;
}
export interface CreateTypedLinkFacetInput {
    /** Facet structure that is associated with the typed link facet. */
    Facet: TypedLinkFacet;
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
}
export interface DeleteDirectoryInput {
    /** The ARN of the directory to delete. */
    DirectoryArn: string;
}
export interface DeleteFacetInput {
    /** The name of the facet to delete. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the Facet. For more information, see arns. */
    SchemaArn: string;
}
export interface DeleteObjectInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. */
    DirectoryArn: string;
    /** A reference that identifies the object. */
    ObjectReference: ObjectReference;
}
export interface DeleteSchemaInput {
    /** The Amazon Resource Name (ARN) of the development schema. For more information, see arns. */
    SchemaArn: string;
}
export interface DeleteTypedLinkFacetInput {
    /** The unique name of the typed link facet. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
}
export interface DetachFromIndexInput {
    /** The Amazon Resource Name (ARN) of the directory the index and object exist in. */
    DirectoryArn: string;
    /** A reference to the index object. */
    IndexReference: ObjectReference;
    /** A reference to the object being detached from the index. */
    TargetReference: ObjectReference;
}
export interface DetachObjectInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where objects reside. For more information, see arns. */
    DirectoryArn: string;
    /** The link name associated with the object that needs to be detached. */
    LinkName: string;
    /** The parent reference from which the object with the specified link name is detached. */
    ParentReference: ObjectReference;
}
export interface DetachPolicyInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where both objects reside. For more information, see arns. */
    DirectoryArn: string;
    /** Reference that identifies the object whose policy object will be detached. */
    ObjectReference: ObjectReference;
    /** Reference that identifies the policy object. */
    PolicyReference: ObjectReference;
}
export interface DetachTypedLinkInput {
    /** The Amazon Resource Name (ARN) of the directory where you want to detach the typed link. */
    DirectoryArn: string;
    /** Used to accept a typed link specifier as input. */
    TypedLinkSpecifier: TypedLinkSpecifier;
}
export interface DisableDirectoryInput {
    /** The ARN of the directory to disable. */
    DirectoryArn: string;
}
export interface EnableDirectoryInput {
    /** The ARN of the directory to enable. */
    DirectoryArn: string;
}
export interface GetAppliedSchemaVersionInput {
    /** The ARN of the applied schema. */
    SchemaArn: string;
}
export interface GetDirectoryInput {
    /** The ARN of the directory. */
    DirectoryArn: string;
}
export interface GetFacetInput {
    /** The name of the facet to retrieve. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the Facet. For more information, see arns. */
    SchemaArn: string;
}
export interface GetLinkAttributesInput {
    /** A list of attribute names whose values will be retrieved. */
    AttributeNames: string[];
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the typed link resides. For more information, see arns or Typed Links. */
    DirectoryArn: string;
    /** Allows a typed link specifier to be accepted as input. */
    TypedLinkSpecifier: TypedLinkSpecifier;
    /** The consistency level at which to retrieve the attributes on a typed link. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
}
export interface GetObjectAttributesInput {
    /** List of attribute names whose values will be retrieved. */
    AttributeNames: string[];
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. */
    DirectoryArn: string;
    /** Reference that identifies the object whose attributes will be retrieved. */
    ObjectReference: ObjectReference;
    /** Identifier for the facet whose attributes will be retrieved. See SchemaFacet for details. */
    SchemaFacet: SchemaFacet;
    /** The consistency level at which to retrieve the attributes on an object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
}
export interface GetObjectInformationInput {
    /** The ARN of the directory being retrieved. */
    DirectoryArn: string;
    /** A reference to the object. */
    ObjectReference: ObjectReference;
    /** The consistency level at which to retrieve the object information. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
}
export interface GetSchemaAsJsonInput {
    /** The ARN of the schema to retrieve. */
    SchemaArn: string;
}
export interface GetTypedLinkFacetInformationInput {
    /** The unique name of the typed link facet. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
}
export interface ListAppliedSchemaArnsInput {
    /** The ARN of the directory you are listing. */
    DirectoryArn: string;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
    /** The response for ListAppliedSchemaArns when this parameter is used will list all minor version ARNs for a major version. */
    SchemaArn?: string;
}
export interface ListAttachedIndicesInput {
    /** The ARN of the directory. */
    DirectoryArn: string;
    /** A reference to the object that has indices attached. */
    TargetReference: ObjectReference;
    /** The consistency level to use for this operation. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListDevelopmentSchemaArnsInput {
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListDirectoriesInput {
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
    /** The state of the directories in the list. Can be either Enabled, Disabled, or Deleted. */
    state?: 'ENABLED' | 'DISABLED' | 'DELETED';
}
export interface ListFacetAttributesInput {
    /** The name of the facet whose attributes will be retrieved. */
    Name: string;
    /** The ARN of the schema where the facet resides. */
    SchemaArn: string;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListFacetNamesInput {
    /** The Amazon Resource Name (ARN) to retrieve facet names from. */
    SchemaArn: string;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListIncomingTypedLinksInput {
    /** The Amazon Resource Name (ARN) of the directory where you want to list the typed links. */
    DirectoryArn: string;
    /** Reference that identifies the object whose attributes will be listed. */
    ObjectReference: ObjectReference;
    /** The consistency level to execute the request at. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are pr */
    FilterAttributeRanges?: TypedLinkAttributeRange[];
    /** Filters are interpreted in the order of the attributes on the typed link facet, not the order in which they are supplied to any API calls. */
    FilterTypedLink?: TypedLinkSchemaAndFacetName;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListIndexInput {
    /** The ARN of the directory that the index exists in. */
    DirectoryArn: string;
    /** The reference to the index to list. */
    IndexReference: ObjectReference;
    /** The consistency level to execute the request at. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** The maximum number of objects in a single page to retrieve from the index during a request. For more information, see Amazon Cloud Directory Limits. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
    /** Specifies the ranges of indexed values that you want to query. */
    RangesOnIndexedValues?: ObjectAttributeRange[];
}
export interface ListManagedSchemaArnsInput {
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
    /** The response for ListManagedSchemaArns. When this parameter is used, all minor version ARNs for a major version are listed. */
    SchemaArn?: string;
}
export interface ListObjectAttributesInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. */
    DirectoryArn: string;
    /** The reference that identifies the object whose attributes will be listed. */
    ObjectReference: ObjectReference;
    /** Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** Used to filter the list of object attributes that are associated with a certain facet. */
    FacetFilter?: SchemaFacet;
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListObjectChildrenInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. */
    DirectoryArn: string;
    /** The reference that identifies the object for which child objects are being listed. */
    ObjectReference: ObjectReference;
    /** Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListObjectParentPathsInput {
    /** The ARN of the directory to which the parent path applies. */
    DirectoryArn: string;
    /** The reference that identifies the object whose parent paths are listed. */
    ObjectReference: ObjectReference;
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListObjectParentsInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. */
    DirectoryArn: string;
    /** The reference that identifies the object for which parent objects are being listed. */
    ObjectReference: ObjectReference;
    /** Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** When set to True, returns all ListObjectParentsResponse$ParentLinks. There could be multiple links between a parent-child pair. */
    IncludeAllLinksToEachParent?: boolean;
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListObjectPoliciesInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where objects reside. For more information, see arns. */
    DirectoryArn: string;
    /** Reference that identifies the object for which policies will be listed. */
    ObjectReference: ObjectReference;
    /** Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListOutgoingTypedLinksInput {
    /** The Amazon Resource Name (ARN) of the directory where you want to list the typed links. */
    DirectoryArn: string;
    /** A reference that identifies the object whose attributes will be listed. */
    ObjectReference: ObjectReference;
    /** The consistency level to execute the request at. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** Provides range filters for multiple attributes. When providing ranges to typed link selection, any inexact ranges must be specified at the end. Any attributes that do not have a range specified are pr */
    FilterAttributeRanges?: TypedLinkAttributeRange[];
    /** Filters are interpreted in the order of the attributes defined on the typed link facet, not the order they are supplied to any API calls. */
    FilterTypedLink?: TypedLinkSchemaAndFacetName;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListPolicyAttachmentsInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory where objects reside. For more information, see arns. */
    DirectoryArn: string;
    /** The reference that identifies the policy object. */
    PolicyReference: ObjectReference;
    /** Represents the manner and timing in which the successful write or update of an object is reflected in a subsequent read operation of that same object. */
    ConsistencyLevel?: 'SERIALIZABLE' | 'EVENTUAL';
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListPublishedSchemaArnsInput {
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
    /** The response for ListPublishedSchemaArns when this parameter is used will list all minor version ARNs for a major version. */
    SchemaArn?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories. */
    ResourceArn: string;
    /** The MaxResults parameter sets the maximum number of results returned in a single page. This is for future use and is not supported currently. */
    MaxResults?: number;
    /** The pagination token. This is for future use. Currently pagination is not supported for tagging. */
    NextToken?: string;
}
export interface ListTypedLinkFacetAttributesInput {
    /** The unique name of the typed link facet. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface ListTypedLinkFacetNamesInput {
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
    /** The maximum number of results to retrieve. */
    MaxResults?: number;
    /** The pagination token. */
    NextToken?: string;
}
export interface LookupPolicyInput {
    /** The Amazon Resource Name (ARN) that is associated with the Directory. For more information, see arns. */
    DirectoryArn: string;
    /** Reference that identifies the object whose policies will be looked up. */
    ObjectReference: ObjectReference;
    /** The maximum number of items to be retrieved in a single call. This is an approximate number. */
    MaxResults?: number;
    /** The token to request the next page of results. */
    NextToken?: string;
}
export interface PublishSchemaInput {
    /** The Amazon Resource Name (ARN) that is associated with the development schema. For more information, see arns. */
    DevelopmentSchemaArn: string;
    /** The major version under which the schema will be published. Schemas have both a major and minor version associated with them. */
    Version: string;
    /** 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. */
    MinorVersion?: string;
    /** The new name under which the schema will be published. If this is not provided, the development schema is considered. */
    Name?: string;
}
export interface PutSchemaFromJsonInput {
    /** The replacement JSON schema. */
    Document: string;
    /** The ARN of the schema to update. */
    SchemaArn: string;
}
export interface RemoveFacetFromObjectInput {
    /** The ARN of the directory in which the object resides. */
    DirectoryArn: string;
    /** A reference to the object to remove the facet from. */
    ObjectReference: ObjectReference;
    /** The facet to remove. See SchemaFacet for details. */
    SchemaFacet: SchemaFacet;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories. */
    ResourceArn: string;
    /** A list of tag key-value pairs. */
    Tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. Tagging is only supported for directories. */
    ResourceArn: string;
    /** Keys of the tag that need to be removed from the resource. */
    TagKeys: string[];
}
export interface UpdateFacetInput {
    /** The name of the facet. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the Facet. For more information, see arns. */
    SchemaArn: string;
    /** List of attributes that need to be updated in a given schema Facet. Each attribute is followed by AttributeAction, which specifies the type of update operation to perform. */
    AttributeUpdates?: FacetAttributeUpdate[];
    /** The object type that is associated with the facet. See CreateFacetRequest$ObjectType for more details. */
    ObjectType?: 'NODE' | 'LEAF_NODE' | 'POLICY' | 'INDEX';
}
export interface UpdateLinkAttributesInput {
    /** The attributes update structure. */
    AttributeUpdates: LinkAttributeUpdate[];
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the updated typed link resides. For more information, see arns or Typed Links. */
    DirectoryArn: string;
    /** Allows a typed link specifier to be accepted as input. */
    TypedLinkSpecifier: TypedLinkSpecifier;
}
export interface UpdateObjectAttributesInput {
    /** The attributes update structure. */
    AttributeUpdates: ObjectAttributeUpdate[];
    /** The Amazon Resource Name (ARN) that is associated with the Directory where the object resides. For more information, see arns. */
    DirectoryArn: string;
    /** The reference that identifies the object. */
    ObjectReference: ObjectReference;
}
export interface UpdateSchemaInput {
    /** The name of the schema. */
    Name: string;
    /** The Amazon Resource Name (ARN) of the development schema. For more information, see arns. */
    SchemaArn: string;
}
export interface UpdateTypedLinkFacetInput {
    /** Attributes update structure. */
    AttributeUpdates: TypedLinkFacetAttributeUpdate[];
    /** The order of identity attributes for the facet, from most significant to least significant. The ability to filter typed links considers the order that the attributes are defined on the typed link face */
    IdentityAttributeOrder: string[];
    /** The unique name of the typed link facet. */
    Name: string;
    /** The Amazon Resource Name (ARN) that is associated with the schema. For more information, see arns. */
    SchemaArn: string;
}
export interface UpgradeAppliedSchemaInput {
    /** The ARN for the directory to which the upgraded schema will be applied. */
    DirectoryArn: string;
    /** The revision of the published schema to upgrade the directory to. */
    PublishedSchemaArn: string;
    /** 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. */
    DryRun?: boolean;
}
export interface UpgradePublishedSchemaInput {
    /** The ARN of the development schema with the changes used for the upgrade. */
    DevelopmentSchemaArn: string;
    /** Identifies the minor version of the published schema that will be created. This parameter is NOT optional. */
    MinorVersion: string;
    /** The ARN of the published schema to be upgraded. */
    PublishedSchemaArn: string;
    /** 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 */
    DryRun?: boolean;
}
/** CloudDirectory service binding for Step Functions SDK integrations. */
export declare class CloudDirectory {
    constructor();
    addFacetToObject<T>(params: AddFacetToObjectInput): Promise<T>;
    applySchema<T>(params: ApplySchemaInput): Promise<T>;
    attachObject<T>(params: AttachObjectInput): Promise<T>;
    attachPolicy<T>(params: AttachPolicyInput): Promise<T>;
    attachToIndex<T>(params: AttachToIndexInput): Promise<T>;
    attachTypedLink<T>(params: AttachTypedLinkInput): Promise<T>;
    batchRead<T>(params: BatchReadInput): Promise<T>;
    batchWrite<T>(params: BatchWriteInput): Promise<T>;
    createDirectory<T>(params: CreateDirectoryInput): Promise<T>;
    createFacet<T>(params: CreateFacetInput): Promise<T>;
    createIndex<T>(params: CreateIndexInput): Promise<T>;
    createObject<T>(params: CreateObjectInput): Promise<T>;
    createSchema<T>(params: CreateSchemaInput): Promise<T>;
    createTypedLinkFacet<T>(params: CreateTypedLinkFacetInput): Promise<T>;
    deleteDirectory<T>(params: DeleteDirectoryInput): Promise<T>;
    deleteFacet<T>(params: DeleteFacetInput): Promise<T>;
    deleteObject<T>(params: DeleteObjectInput): Promise<T>;
    deleteSchema<T>(params: DeleteSchemaInput): Promise<T>;
    deleteTypedLinkFacet<T>(params: DeleteTypedLinkFacetInput): Promise<T>;
    detachFromIndex<T>(params: DetachFromIndexInput): Promise<T>;
    detachObject<T>(params: DetachObjectInput): Promise<T>;
    detachPolicy<T>(params: DetachPolicyInput): Promise<T>;
    detachTypedLink<T>(params: DetachTypedLinkInput): Promise<T>;
    disableDirectory<T>(params: DisableDirectoryInput): Promise<T>;
    enableDirectory<T>(params: EnableDirectoryInput): Promise<T>;
    getAppliedSchemaVersion<T>(params: GetAppliedSchemaVersionInput): Promise<T>;
    getDirectory<T>(params: GetDirectoryInput): Promise<T>;
    getFacet<T>(params: GetFacetInput): Promise<T>;
    getLinkAttributes<T>(params: GetLinkAttributesInput): Promise<T>;
    getObjectAttributes<T>(params: GetObjectAttributesInput): Promise<T>;
    getObjectInformation<T>(params: GetObjectInformationInput): Promise<T>;
    getSchemaAsJson<T>(params: GetSchemaAsJsonInput): Promise<T>;
    getTypedLinkFacetInformation<T>(params: GetTypedLinkFacetInformationInput): Promise<T>;
    listAppliedSchemaArns<T>(params: ListAppliedSchemaArnsInput): Promise<T>;
    listAttachedIndices<T>(params: ListAttachedIndicesInput): Promise<T>;
    listDevelopmentSchemaArns<T>(params: ListDevelopmentSchemaArnsInput): Promise<T>;
    listDirectories<T>(params: ListDirectoriesInput): Promise<T>;
    listFacetAttributes<T>(params: ListFacetAttributesInput): Promise<T>;
    listFacetNames<T>(params: ListFacetNamesInput): Promise<T>;
    listIncomingTypedLinks<T>(params: ListIncomingTypedLinksInput): Promise<T>;
    listIndex<T>(params: ListIndexInput): Promise<T>;
    listManagedSchemaArns<T>(params: ListManagedSchemaArnsInput): Promise<T>;
    listObjectAttributes<T>(params: ListObjectAttributesInput): Promise<T>;
    listObjectChildren<T>(params: ListObjectChildrenInput): Promise<T>;
    listObjectParentPaths<T>(params: ListObjectParentPathsInput): Promise<T>;
    listObjectParents<T>(params: ListObjectParentsInput): Promise<T>;
    listObjectPolicies<T>(params: ListObjectPoliciesInput): Promise<T>;
    listOutgoingTypedLinks<T>(params: ListOutgoingTypedLinksInput): Promise<T>;
    listPolicyAttachments<T>(params: ListPolicyAttachmentsInput): Promise<T>;
    listPublishedSchemaArns<T>(params: ListPublishedSchemaArnsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTypedLinkFacetAttributes<T>(params: ListTypedLinkFacetAttributesInput): Promise<T>;
    listTypedLinkFacetNames<T>(params: ListTypedLinkFacetNamesInput): Promise<T>;
    lookupPolicy<T>(params: LookupPolicyInput): Promise<T>;
    publishSchema<T>(params: PublishSchemaInput): Promise<T>;
    putSchemaFromJson<T>(params: PutSchemaFromJsonInput): Promise<T>;
    removeFacetFromObject<T>(params: RemoveFacetFromObjectInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateFacet<T>(params: UpdateFacetInput): Promise<T>;
    updateLinkAttributes<T>(params: UpdateLinkAttributesInput): Promise<T>;
    updateObjectAttributes<T>(params: UpdateObjectAttributesInput): Promise<T>;
    updateSchema<T>(params: UpdateSchemaInput): Promise<T>;
    updateTypedLinkFacet<T>(params: UpdateTypedLinkFacetInput): Promise<T>;
    upgradeAppliedSchema<T>(params: UpgradeAppliedSchemaInput): Promise<T>;
    upgradePublishedSchema<T>(params: UpgradePublishedSchemaInput): Promise<T>;
}
//# sourceMappingURL=CloudDirectory.d.ts.map