/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace CloudDirectory { /** * Amazon Cloud Directory

Amazon Cloud Directory is a * component of the AWS Directory Service that simplifies the development and * management of cloud-scale web, mobile, and IoT applications. This guide * describes the Cloud Directory operations that you can call programmatically and * includes detailed information on data types and errors. For information about * Cloud Directory features, see AWS Directory Service and * the Amazon * Cloud Directory Developer Guide.

*/ class AWS_CLOUDDIRECTORY_API CloudDirectoryClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef CloudDirectoryClientConfiguration ClientConfigurationType; typedef CloudDirectoryEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudDirectoryClient(const Aws::CloudDirectory::CloudDirectoryClientConfiguration& clientConfiguration = Aws::CloudDirectory::CloudDirectoryClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudDirectoryClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CloudDirectory::CloudDirectoryClientConfiguration& clientConfiguration = Aws::CloudDirectory::CloudDirectoryClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ CloudDirectoryClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::CloudDirectory::CloudDirectoryClientConfiguration& clientConfiguration = Aws::CloudDirectory::CloudDirectoryClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudDirectoryClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ CloudDirectoryClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ CloudDirectoryClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~CloudDirectoryClient(); /** *

Adds a new Facet to an object. An object can have more than one facet * applied on it.

See Also:

AWS * API Reference

*/ virtual Model::AddFacetToObjectOutcome AddFacetToObject(const Model::AddFacetToObjectRequest& request) const; /** * A Callable wrapper for AddFacetToObject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AddFacetToObjectOutcomeCallable AddFacetToObjectCallable(const AddFacetToObjectRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::AddFacetToObject, request); } /** * An Async wrapper for AddFacetToObject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AddFacetToObjectAsync(const AddFacetToObjectRequestT& request, const AddFacetToObjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::AddFacetToObject, request, handler, context); } /** *

Copies the input published schema, at the specified version, into the * Directory with the same name and version as that of the published * schema.

See Also:

AWS * API Reference

*/ virtual Model::ApplySchemaOutcome ApplySchema(const Model::ApplySchemaRequest& request) const; /** * A Callable wrapper for ApplySchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ApplySchemaOutcomeCallable ApplySchemaCallable(const ApplySchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ApplySchema, request); } /** * An Async wrapper for ApplySchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ApplySchemaAsync(const ApplySchemaRequestT& request, const ApplySchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ApplySchema, request, handler, context); } /** *

Attaches an existing object to another object. An object can be accessed in * two ways:

  1. Using the path

  2. Using * ObjectIdentifier

See Also:

AWS * API Reference

*/ virtual Model::AttachObjectOutcome AttachObject(const Model::AttachObjectRequest& request) const; /** * A Callable wrapper for AttachObject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AttachObjectOutcomeCallable AttachObjectCallable(const AttachObjectRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::AttachObject, request); } /** * An Async wrapper for AttachObject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AttachObjectAsync(const AttachObjectRequestT& request, const AttachObjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::AttachObject, request, handler, context); } /** *

Attaches a policy object to a regular object. An object can have a limited * number of attached policies.

See Also:

AWS * API Reference

*/ virtual Model::AttachPolicyOutcome AttachPolicy(const Model::AttachPolicyRequest& request) const; /** * A Callable wrapper for AttachPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AttachPolicyOutcomeCallable AttachPolicyCallable(const AttachPolicyRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::AttachPolicy, request); } /** * An Async wrapper for AttachPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AttachPolicyAsync(const AttachPolicyRequestT& request, const AttachPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::AttachPolicy, request, handler, context); } /** *

Attaches the specified object to the specified index.

See * Also:

AWS * API Reference

*/ virtual Model::AttachToIndexOutcome AttachToIndex(const Model::AttachToIndexRequest& request) const; /** * A Callable wrapper for AttachToIndex that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AttachToIndexOutcomeCallable AttachToIndexCallable(const AttachToIndexRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::AttachToIndex, request); } /** * An Async wrapper for AttachToIndex that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AttachToIndexAsync(const AttachToIndexRequestT& request, const AttachToIndexResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::AttachToIndex, request, handler, context); } /** *

Attaches a typed link to a specified source and target object. For more * information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::AttachTypedLinkOutcome AttachTypedLink(const Model::AttachTypedLinkRequest& request) const; /** * A Callable wrapper for AttachTypedLink that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AttachTypedLinkOutcomeCallable AttachTypedLinkCallable(const AttachTypedLinkRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::AttachTypedLink, request); } /** * An Async wrapper for AttachTypedLink that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AttachTypedLinkAsync(const AttachTypedLinkRequestT& request, const AttachTypedLinkResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::AttachTypedLink, request, handler, context); } /** *

Performs all the read operations in a batch.

See Also:

AWS * API Reference

*/ virtual Model::BatchReadOutcome BatchRead(const Model::BatchReadRequest& request) const; /** * A Callable wrapper for BatchRead that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchReadOutcomeCallable BatchReadCallable(const BatchReadRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::BatchRead, request); } /** * An Async wrapper for BatchRead that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchReadAsync(const BatchReadRequestT& request, const BatchReadResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::BatchRead, request, handler, context); } /** *

Performs all the write operations in a batch. Either all the operations * succeed or none.

See Also:

AWS * API Reference

*/ virtual Model::BatchWriteOutcome BatchWrite(const Model::BatchWriteRequest& request) const; /** * A Callable wrapper for BatchWrite that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchWriteOutcomeCallable BatchWriteCallable(const BatchWriteRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::BatchWrite, request); } /** * An Async wrapper for BatchWrite that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchWriteAsync(const BatchWriteRequestT& request, const BatchWriteResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::BatchWrite, request, handler, context); } /** *

Creates a Directory by copying the published schema into the * directory. A directory cannot be created without a schema.

You can also * quickly create a directory using a managed schema, called the * QuickStartSchema. For more information, see Managed * Schema in the Amazon Cloud Directory Developer Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateDirectoryOutcome CreateDirectory(const Model::CreateDirectoryRequest& request) const; /** * A Callable wrapper for CreateDirectory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateDirectoryOutcomeCallable CreateDirectoryCallable(const CreateDirectoryRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::CreateDirectory, request); } /** * An Async wrapper for CreateDirectory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateDirectoryAsync(const CreateDirectoryRequestT& request, const CreateDirectoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::CreateDirectory, request, handler, context); } /** *

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

See Also:

AWS * API Reference

*/ virtual Model::CreateFacetOutcome CreateFacet(const Model::CreateFacetRequest& request) const; /** * A Callable wrapper for CreateFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateFacetOutcomeCallable CreateFacetCallable(const CreateFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::CreateFacet, request); } /** * An Async wrapper for CreateFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateFacetAsync(const CreateFacetRequestT& request, const CreateFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::CreateFacet, request, handler, context); } /** *

Creates an index object. See Indexing * and search for more information.

See Also:

AWS * API Reference

*/ virtual Model::CreateIndexOutcome CreateIndex(const Model::CreateIndexRequest& request) const; /** * A Callable wrapper for CreateIndex that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateIndexOutcomeCallable CreateIndexCallable(const CreateIndexRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::CreateIndex, request); } /** * An Async wrapper for CreateIndex that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateIndexAsync(const CreateIndexRequestT& request, const CreateIndexResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::CreateIndex, request, handler, context); } /** *

Creates an object in a Directory. Additionally attaches the object to * a parent, if a parent reference and LinkName is specified. An * object is simply a collection of Facet attributes. You can also use this * API call to create a policy object, if the facet from which you create the * object is a policy facet.

See Also:

AWS * API Reference

*/ virtual Model::CreateObjectOutcome CreateObject(const Model::CreateObjectRequest& request) const; /** * A Callable wrapper for CreateObject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateObjectOutcomeCallable CreateObjectCallable(const CreateObjectRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::CreateObject, request); } /** * An Async wrapper for CreateObject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateObjectAsync(const CreateObjectRequestT& request, const CreateObjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::CreateObject, request, handler, context); } /** *

Creates a new schema in a development state. A schema can exist in three * phases:

  • Development: This is a mutable phase of the * schema. All new schemas are in the development phase. Once the schema is * finalized, it can be published.

  • Published: Published * schemas are immutable and have a version associated with them.

  • *

    Applied: Applied schemas are mutable in a way that allows you to add * new schema facets. You can also add new, nonrequired attributes to existing * schema facets. You can apply only published schemas to directories.

  • *

See Also:

AWS * API Reference

*/ virtual Model::CreateSchemaOutcome CreateSchema(const Model::CreateSchemaRequest& request) const; /** * A Callable wrapper for CreateSchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateSchemaOutcomeCallable CreateSchemaCallable(const CreateSchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::CreateSchema, request); } /** * An Async wrapper for CreateSchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateSchemaAsync(const CreateSchemaRequestT& request, const CreateSchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::CreateSchema, request, handler, context); } /** *

Creates a TypedLinkFacet. For more information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::CreateTypedLinkFacetOutcome CreateTypedLinkFacet(const Model::CreateTypedLinkFacetRequest& request) const; /** * A Callable wrapper for CreateTypedLinkFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateTypedLinkFacetOutcomeCallable CreateTypedLinkFacetCallable(const CreateTypedLinkFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::CreateTypedLinkFacet, request); } /** * An Async wrapper for CreateTypedLinkFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateTypedLinkFacetAsync(const CreateTypedLinkFacetRequestT& request, const CreateTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::CreateTypedLinkFacet, request, handler, context); } /** *

Deletes a directory. Only disabled directories can be deleted. A deleted * directory cannot be undone. Exercise extreme caution when deleting * directories.

See Also:

AWS * API Reference

*/ virtual Model::DeleteDirectoryOutcome DeleteDirectory(const Model::DeleteDirectoryRequest& request) const; /** * A Callable wrapper for DeleteDirectory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteDirectoryOutcomeCallable DeleteDirectoryCallable(const DeleteDirectoryRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DeleteDirectory, request); } /** * An Async wrapper for DeleteDirectory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteDirectoryAsync(const DeleteDirectoryRequestT& request, const DeleteDirectoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DeleteDirectory, request, handler, context); } /** *

Deletes a given Facet. All attributes and Rules that are * associated with the facet will be deleted. Only development schema facets are * allowed deletion.

See Also:

AWS * API Reference

*/ virtual Model::DeleteFacetOutcome DeleteFacet(const Model::DeleteFacetRequest& request) const; /** * A Callable wrapper for DeleteFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteFacetOutcomeCallable DeleteFacetCallable(const DeleteFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DeleteFacet, request); } /** * An Async wrapper for DeleteFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteFacetAsync(const DeleteFacetRequestT& request, const DeleteFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DeleteFacet, request, handler, context); } /** *

Deletes an object and its associated attributes. Only objects with no * children and no parents can be deleted. The maximum number of attributes that * can be deleted during an object deletion is 30. For more information, see Amazon * Cloud Directory Limits.

See Also:

AWS * API Reference

*/ virtual Model::DeleteObjectOutcome DeleteObject(const Model::DeleteObjectRequest& request) const; /** * A Callable wrapper for DeleteObject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteObjectOutcomeCallable DeleteObjectCallable(const DeleteObjectRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DeleteObject, request); } /** * An Async wrapper for DeleteObject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteObjectAsync(const DeleteObjectRequestT& request, const DeleteObjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DeleteObject, request, handler, context); } /** *

Deletes a given schema. Schemas in a development and published state can only * be deleted.

See Also:

AWS * API Reference

*/ virtual Model::DeleteSchemaOutcome DeleteSchema(const Model::DeleteSchemaRequest& request) const; /** * A Callable wrapper for DeleteSchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteSchemaOutcomeCallable DeleteSchemaCallable(const DeleteSchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DeleteSchema, request); } /** * An Async wrapper for DeleteSchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteSchemaAsync(const DeleteSchemaRequestT& request, const DeleteSchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DeleteSchema, request, handler, context); } /** *

Deletes a TypedLinkFacet. For more information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::DeleteTypedLinkFacetOutcome DeleteTypedLinkFacet(const Model::DeleteTypedLinkFacetRequest& request) const; /** * A Callable wrapper for DeleteTypedLinkFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteTypedLinkFacetOutcomeCallable DeleteTypedLinkFacetCallable(const DeleteTypedLinkFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DeleteTypedLinkFacet, request); } /** * An Async wrapper for DeleteTypedLinkFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteTypedLinkFacetAsync(const DeleteTypedLinkFacetRequestT& request, const DeleteTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DeleteTypedLinkFacet, request, handler, context); } /** *

Detaches the specified object from the specified index.

See * Also:

AWS * API Reference

*/ virtual Model::DetachFromIndexOutcome DetachFromIndex(const Model::DetachFromIndexRequest& request) const; /** * A Callable wrapper for DetachFromIndex that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DetachFromIndexOutcomeCallable DetachFromIndexCallable(const DetachFromIndexRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DetachFromIndex, request); } /** * An Async wrapper for DetachFromIndex that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DetachFromIndexAsync(const DetachFromIndexRequestT& request, const DetachFromIndexResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DetachFromIndex, request, handler, context); } /** *

Detaches a given object from the parent object. The object that is to be * detached from the parent is specified by the link name.

See Also:

* AWS * API Reference

*/ virtual Model::DetachObjectOutcome DetachObject(const Model::DetachObjectRequest& request) const; /** * A Callable wrapper for DetachObject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DetachObjectOutcomeCallable DetachObjectCallable(const DetachObjectRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DetachObject, request); } /** * An Async wrapper for DetachObject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DetachObjectAsync(const DetachObjectRequestT& request, const DetachObjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DetachObject, request, handler, context); } /** *

Detaches a policy from an object.

See Also:

AWS * API Reference

*/ virtual Model::DetachPolicyOutcome DetachPolicy(const Model::DetachPolicyRequest& request) const; /** * A Callable wrapper for DetachPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DetachPolicyOutcomeCallable DetachPolicyCallable(const DetachPolicyRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DetachPolicy, request); } /** * An Async wrapper for DetachPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DetachPolicyAsync(const DetachPolicyRequestT& request, const DetachPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DetachPolicy, request, handler, context); } /** *

Detaches a typed link from a specified source and target object. For more * information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::DetachTypedLinkOutcome DetachTypedLink(const Model::DetachTypedLinkRequest& request) const; /** * A Callable wrapper for DetachTypedLink that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DetachTypedLinkOutcomeCallable DetachTypedLinkCallable(const DetachTypedLinkRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DetachTypedLink, request); } /** * An Async wrapper for DetachTypedLink that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DetachTypedLinkAsync(const DetachTypedLinkRequestT& request, const DetachTypedLinkResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DetachTypedLink, request, handler, context); } /** *

Disables the specified directory. Disabled directories cannot be read or * written to. Only enabled directories can be disabled. Disabled directories may * be reenabled.

See Also:

AWS * API Reference

*/ virtual Model::DisableDirectoryOutcome DisableDirectory(const Model::DisableDirectoryRequest& request) const; /** * A Callable wrapper for DisableDirectory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisableDirectoryOutcomeCallable DisableDirectoryCallable(const DisableDirectoryRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::DisableDirectory, request); } /** * An Async wrapper for DisableDirectory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisableDirectoryAsync(const DisableDirectoryRequestT& request, const DisableDirectoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::DisableDirectory, request, handler, context); } /** *

Enables the specified directory. Only disabled directories can be enabled. * Once enabled, the directory can then be read and written to.

See * Also:

AWS * API Reference

*/ virtual Model::EnableDirectoryOutcome EnableDirectory(const Model::EnableDirectoryRequest& request) const; /** * A Callable wrapper for EnableDirectory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::EnableDirectoryOutcomeCallable EnableDirectoryCallable(const EnableDirectoryRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::EnableDirectory, request); } /** * An Async wrapper for EnableDirectory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void EnableDirectoryAsync(const EnableDirectoryRequestT& request, const EnableDirectoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::EnableDirectory, request, handler, context); } /** *

Returns current applied schema version ARN, including the minor version in * use.

See Also:

AWS * API Reference

*/ virtual Model::GetAppliedSchemaVersionOutcome GetAppliedSchemaVersion(const Model::GetAppliedSchemaVersionRequest& request) const; /** * A Callable wrapper for GetAppliedSchemaVersion that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetAppliedSchemaVersionOutcomeCallable GetAppliedSchemaVersionCallable(const GetAppliedSchemaVersionRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetAppliedSchemaVersion, request); } /** * An Async wrapper for GetAppliedSchemaVersion that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetAppliedSchemaVersionAsync(const GetAppliedSchemaVersionRequestT& request, const GetAppliedSchemaVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetAppliedSchemaVersion, request, handler, context); } /** *

Retrieves metadata about a directory.

See Also:

AWS * API Reference

*/ virtual Model::GetDirectoryOutcome GetDirectory(const Model::GetDirectoryRequest& request) const; /** * A Callable wrapper for GetDirectory that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDirectoryOutcomeCallable GetDirectoryCallable(const GetDirectoryRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetDirectory, request); } /** * An Async wrapper for GetDirectory that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDirectoryAsync(const GetDirectoryRequestT& request, const GetDirectoryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetDirectory, request, handler, context); } /** *

Gets details of the Facet, such as facet name, attributes, * Rules, or ObjectType. You can call this on all kinds of * schema facets -- published, development, or applied.

See Also:

* AWS * API Reference

*/ virtual Model::GetFacetOutcome GetFacet(const Model::GetFacetRequest& request) const; /** * A Callable wrapper for GetFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetFacetOutcomeCallable GetFacetCallable(const GetFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetFacet, request); } /** * An Async wrapper for GetFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetFacetAsync(const GetFacetRequestT& request, const GetFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetFacet, request, handler, context); } /** *

Retrieves attributes that are associated with a typed link.

See * Also:

AWS * API Reference

*/ virtual Model::GetLinkAttributesOutcome GetLinkAttributes(const Model::GetLinkAttributesRequest& request) const; /** * A Callable wrapper for GetLinkAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetLinkAttributesOutcomeCallable GetLinkAttributesCallable(const GetLinkAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetLinkAttributes, request); } /** * An Async wrapper for GetLinkAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetLinkAttributesAsync(const GetLinkAttributesRequestT& request, const GetLinkAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetLinkAttributes, request, handler, context); } /** *

Retrieves attributes within a facet that are associated with an * object.

See Also:

AWS * API Reference

*/ virtual Model::GetObjectAttributesOutcome GetObjectAttributes(const Model::GetObjectAttributesRequest& request) const; /** * A Callable wrapper for GetObjectAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetObjectAttributesOutcomeCallable GetObjectAttributesCallable(const GetObjectAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetObjectAttributes, request); } /** * An Async wrapper for GetObjectAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetObjectAttributesAsync(const GetObjectAttributesRequestT& request, const GetObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetObjectAttributes, request, handler, context); } /** *

Retrieves metadata about an object.

See Also:

AWS * API Reference

*/ virtual Model::GetObjectInformationOutcome GetObjectInformation(const Model::GetObjectInformationRequest& request) const; /** * A Callable wrapper for GetObjectInformation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetObjectInformationOutcomeCallable GetObjectInformationCallable(const GetObjectInformationRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetObjectInformation, request); } /** * An Async wrapper for GetObjectInformation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetObjectInformationAsync(const GetObjectInformationRequestT& request, const GetObjectInformationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetObjectInformation, request, handler, context); } /** *

Retrieves a JSON representation of the schema. See JSON * Schema Format for more information.

See Also:

AWS * API Reference

*/ virtual Model::GetSchemaAsJsonOutcome GetSchemaAsJson(const Model::GetSchemaAsJsonRequest& request) const; /** * A Callable wrapper for GetSchemaAsJson that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetSchemaAsJsonOutcomeCallable GetSchemaAsJsonCallable(const GetSchemaAsJsonRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetSchemaAsJson, request); } /** * An Async wrapper for GetSchemaAsJson that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetSchemaAsJsonAsync(const GetSchemaAsJsonRequestT& request, const GetSchemaAsJsonResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetSchemaAsJson, request, handler, context); } /** *

Returns the identity attribute order for a specific TypedLinkFacet. * For more information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::GetTypedLinkFacetInformationOutcome GetTypedLinkFacetInformation(const Model::GetTypedLinkFacetInformationRequest& request) const; /** * A Callable wrapper for GetTypedLinkFacetInformation that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetTypedLinkFacetInformationOutcomeCallable GetTypedLinkFacetInformationCallable(const GetTypedLinkFacetInformationRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::GetTypedLinkFacetInformation, request); } /** * An Async wrapper for GetTypedLinkFacetInformation that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetTypedLinkFacetInformationAsync(const GetTypedLinkFacetInformationRequestT& request, const GetTypedLinkFacetInformationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::GetTypedLinkFacetInformation, request, handler, context); } /** *

Lists schema major versions applied to a directory. If SchemaArn * is provided, lists the minor version.

See Also:

AWS * API Reference

*/ virtual Model::ListAppliedSchemaArnsOutcome ListAppliedSchemaArns(const Model::ListAppliedSchemaArnsRequest& request) const; /** * A Callable wrapper for ListAppliedSchemaArns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAppliedSchemaArnsOutcomeCallable ListAppliedSchemaArnsCallable(const ListAppliedSchemaArnsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListAppliedSchemaArns, request); } /** * An Async wrapper for ListAppliedSchemaArns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAppliedSchemaArnsAsync(const ListAppliedSchemaArnsRequestT& request, const ListAppliedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListAppliedSchemaArns, request, handler, context); } /** *

Lists indices attached to the specified object.

See Also:

AWS * API Reference

*/ virtual Model::ListAttachedIndicesOutcome ListAttachedIndices(const Model::ListAttachedIndicesRequest& request) const; /** * A Callable wrapper for ListAttachedIndices that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAttachedIndicesOutcomeCallable ListAttachedIndicesCallable(const ListAttachedIndicesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListAttachedIndices, request); } /** * An Async wrapper for ListAttachedIndices that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAttachedIndicesAsync(const ListAttachedIndicesRequestT& request, const ListAttachedIndicesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListAttachedIndices, request, handler, context); } /** *

Retrieves each Amazon Resource Name (ARN) of schemas in the development * state.

See Also:

AWS * API Reference

*/ virtual Model::ListDevelopmentSchemaArnsOutcome ListDevelopmentSchemaArns(const Model::ListDevelopmentSchemaArnsRequest& request) const; /** * A Callable wrapper for ListDevelopmentSchemaArns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDevelopmentSchemaArnsOutcomeCallable ListDevelopmentSchemaArnsCallable(const ListDevelopmentSchemaArnsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListDevelopmentSchemaArns, request); } /** * An Async wrapper for ListDevelopmentSchemaArns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDevelopmentSchemaArnsAsync(const ListDevelopmentSchemaArnsRequestT& request, const ListDevelopmentSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListDevelopmentSchemaArns, request, handler, context); } /** *

Lists directories created within an account.

See Also:

AWS * API Reference

*/ virtual Model::ListDirectoriesOutcome ListDirectories(const Model::ListDirectoriesRequest& request) const; /** * A Callable wrapper for ListDirectories that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDirectoriesOutcomeCallable ListDirectoriesCallable(const ListDirectoriesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListDirectories, request); } /** * An Async wrapper for ListDirectories that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDirectoriesAsync(const ListDirectoriesRequestT& request, const ListDirectoriesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListDirectories, request, handler, context); } /** *

Retrieves attributes attached to the facet.

See Also:

AWS * API Reference

*/ virtual Model::ListFacetAttributesOutcome ListFacetAttributes(const Model::ListFacetAttributesRequest& request) const; /** * A Callable wrapper for ListFacetAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListFacetAttributesOutcomeCallable ListFacetAttributesCallable(const ListFacetAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListFacetAttributes, request); } /** * An Async wrapper for ListFacetAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListFacetAttributesAsync(const ListFacetAttributesRequestT& request, const ListFacetAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListFacetAttributes, request, handler, context); } /** *

Retrieves the names of facets that exist in a schema.

See * Also:

AWS * API Reference

*/ virtual Model::ListFacetNamesOutcome ListFacetNames(const Model::ListFacetNamesRequest& request) const; /** * A Callable wrapper for ListFacetNames that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListFacetNamesOutcomeCallable ListFacetNamesCallable(const ListFacetNamesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListFacetNames, request); } /** * An Async wrapper for ListFacetNames that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListFacetNamesAsync(const ListFacetNamesRequestT& request, const ListFacetNamesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListFacetNames, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListIncomingTypedLinksOutcome ListIncomingTypedLinks(const Model::ListIncomingTypedLinksRequest& request) const; /** * A Callable wrapper for ListIncomingTypedLinks that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListIncomingTypedLinksOutcomeCallable ListIncomingTypedLinksCallable(const ListIncomingTypedLinksRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListIncomingTypedLinks, request); } /** * An Async wrapper for ListIncomingTypedLinks that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListIncomingTypedLinksAsync(const ListIncomingTypedLinksRequestT& request, const ListIncomingTypedLinksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListIncomingTypedLinks, request, handler, context); } /** *

Lists objects attached to the specified index.

See Also:

AWS * API Reference

*/ virtual Model::ListIndexOutcome ListIndex(const Model::ListIndexRequest& request) const; /** * A Callable wrapper for ListIndex that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListIndexOutcomeCallable ListIndexCallable(const ListIndexRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListIndex, request); } /** * An Async wrapper for ListIndex that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListIndexAsync(const ListIndexRequestT& request, const ListIndexResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListIndex, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListManagedSchemaArnsOutcome ListManagedSchemaArns(const Model::ListManagedSchemaArnsRequest& request) const; /** * A Callable wrapper for ListManagedSchemaArns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListManagedSchemaArnsOutcomeCallable ListManagedSchemaArnsCallable(const ListManagedSchemaArnsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListManagedSchemaArns, request); } /** * An Async wrapper for ListManagedSchemaArns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListManagedSchemaArnsAsync(const ListManagedSchemaArnsRequestT& request, const ListManagedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListManagedSchemaArns, request, handler, context); } /** *

Lists all attributes that are associated with an object.

See * Also:

AWS * API Reference

*/ virtual Model::ListObjectAttributesOutcome ListObjectAttributes(const Model::ListObjectAttributesRequest& request) const; /** * A Callable wrapper for ListObjectAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListObjectAttributesOutcomeCallable ListObjectAttributesCallable(const ListObjectAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListObjectAttributes, request); } /** * An Async wrapper for ListObjectAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListObjectAttributesAsync(const ListObjectAttributesRequestT& request, const ListObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListObjectAttributes, request, handler, context); } /** *

Returns a paginated list of child objects that are associated with a given * object.

See Also:

AWS * API Reference

*/ virtual Model::ListObjectChildrenOutcome ListObjectChildren(const Model::ListObjectChildrenRequest& request) const; /** * A Callable wrapper for ListObjectChildren that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListObjectChildrenOutcomeCallable ListObjectChildrenCallable(const ListObjectChildrenRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListObjectChildren, request); } /** * An Async wrapper for ListObjectChildren that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListObjectChildrenAsync(const ListObjectChildrenRequestT& request, const ListObjectChildrenResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListObjectChildren, request, handler, context); } /** *

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.

Use this API to evaluate all parents for an object. The * call returns all objects from the root of the directory up to the requested * object. The API returns the number of paths based on user-defined * MaxResults, in case there are multiple paths to the parent. The * order of the paths and nodes returned is consistent among multiple API calls * unless the objects are deleted or moved. Paths not leading to the directory root * are ignored from the target object.

See Also:

AWS * API Reference

*/ virtual Model::ListObjectParentPathsOutcome ListObjectParentPaths(const Model::ListObjectParentPathsRequest& request) const; /** * A Callable wrapper for ListObjectParentPaths that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListObjectParentPathsOutcomeCallable ListObjectParentPathsCallable(const ListObjectParentPathsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListObjectParentPaths, request); } /** * An Async wrapper for ListObjectParentPaths that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListObjectParentPathsAsync(const ListObjectParentPathsRequestT& request, const ListObjectParentPathsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListObjectParentPaths, request, handler, context); } /** *

Lists parent objects that are associated with a given object in pagination * fashion.

See Also:

AWS * API Reference

*/ virtual Model::ListObjectParentsOutcome ListObjectParents(const Model::ListObjectParentsRequest& request) const; /** * A Callable wrapper for ListObjectParents that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListObjectParentsOutcomeCallable ListObjectParentsCallable(const ListObjectParentsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListObjectParents, request); } /** * An Async wrapper for ListObjectParents that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListObjectParentsAsync(const ListObjectParentsRequestT& request, const ListObjectParentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListObjectParents, request, handler, context); } /** *

Returns policies attached to an object in pagination fashion.

See * Also:

AWS * API Reference

*/ virtual Model::ListObjectPoliciesOutcome ListObjectPolicies(const Model::ListObjectPoliciesRequest& request) const; /** * A Callable wrapper for ListObjectPolicies that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListObjectPoliciesOutcomeCallable ListObjectPoliciesCallable(const ListObjectPoliciesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListObjectPolicies, request); } /** * An Async wrapper for ListObjectPolicies that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListObjectPoliciesAsync(const ListObjectPoliciesRequestT& request, const ListObjectPoliciesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListObjectPolicies, request, handler, context); } /** *

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.

See Also:

AWS * API Reference

*/ virtual Model::ListOutgoingTypedLinksOutcome ListOutgoingTypedLinks(const Model::ListOutgoingTypedLinksRequest& request) const; /** * A Callable wrapper for ListOutgoingTypedLinks that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOutgoingTypedLinksOutcomeCallable ListOutgoingTypedLinksCallable(const ListOutgoingTypedLinksRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListOutgoingTypedLinks, request); } /** * An Async wrapper for ListOutgoingTypedLinks that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOutgoingTypedLinksAsync(const ListOutgoingTypedLinksRequestT& request, const ListOutgoingTypedLinksResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListOutgoingTypedLinks, request, handler, context); } /** *

Returns all of the ObjectIdentifiers to which a given policy is * attached.

See Also:

AWS * API Reference

*/ virtual Model::ListPolicyAttachmentsOutcome ListPolicyAttachments(const Model::ListPolicyAttachmentsRequest& request) const; /** * A Callable wrapper for ListPolicyAttachments that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListPolicyAttachmentsOutcomeCallable ListPolicyAttachmentsCallable(const ListPolicyAttachmentsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListPolicyAttachments, request); } /** * An Async wrapper for ListPolicyAttachments that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListPolicyAttachmentsAsync(const ListPolicyAttachmentsRequestT& request, const ListPolicyAttachmentsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListPolicyAttachments, request, handler, context); } /** *

Lists the major version families of each published schema. If a major version * ARN is provided as SchemaArn, the minor version revisions in that * family are listed instead.

See Also:

AWS * API Reference

*/ virtual Model::ListPublishedSchemaArnsOutcome ListPublishedSchemaArns(const Model::ListPublishedSchemaArnsRequest& request) const; /** * A Callable wrapper for ListPublishedSchemaArns that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListPublishedSchemaArnsOutcomeCallable ListPublishedSchemaArnsCallable(const ListPublishedSchemaArnsRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListPublishedSchemaArns, request); } /** * An Async wrapper for ListPublishedSchemaArns that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListPublishedSchemaArnsAsync(const ListPublishedSchemaArnsRequestT& request, const ListPublishedSchemaArnsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListPublishedSchemaArns, request, handler, context); } /** *

Returns tags for a resource. Tagging is currently supported only for * directories with a limit of 50 tags per directory. All 50 tags are returned for * a given directory with this API call.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListTagsForResource, request, handler, context); } /** *

Returns a paginated list of all attribute definitions for a particular * TypedLinkFacet. For more information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::ListTypedLinkFacetAttributesOutcome ListTypedLinkFacetAttributes(const Model::ListTypedLinkFacetAttributesRequest& request) const; /** * A Callable wrapper for ListTypedLinkFacetAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTypedLinkFacetAttributesOutcomeCallable ListTypedLinkFacetAttributesCallable(const ListTypedLinkFacetAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListTypedLinkFacetAttributes, request); } /** * An Async wrapper for ListTypedLinkFacetAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTypedLinkFacetAttributesAsync(const ListTypedLinkFacetAttributesRequestT& request, const ListTypedLinkFacetAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListTypedLinkFacetAttributes, request, handler, context); } /** *

Returns a paginated list of TypedLink facet names for a * particular schema. For more information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::ListTypedLinkFacetNamesOutcome ListTypedLinkFacetNames(const Model::ListTypedLinkFacetNamesRequest& request) const; /** * A Callable wrapper for ListTypedLinkFacetNames that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTypedLinkFacetNamesOutcomeCallable ListTypedLinkFacetNamesCallable(const ListTypedLinkFacetNamesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::ListTypedLinkFacetNames, request); } /** * An Async wrapper for ListTypedLinkFacetNames that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTypedLinkFacetNamesAsync(const ListTypedLinkFacetNamesRequestT& request, const ListTypedLinkFacetNamesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::ListTypedLinkFacetNames, request, handler, context); } /** *

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 policies attached, it * returns the ObjectIdentifier for such objects. If policies are * present, it returns ObjectIdentifier, policyId, and * policyType. Paths that don't lead to the root from the target * object are ignored. For more information, see Policies.

See * Also:

AWS * API Reference

*/ virtual Model::LookupPolicyOutcome LookupPolicy(const Model::LookupPolicyRequest& request) const; /** * A Callable wrapper for LookupPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::LookupPolicyOutcomeCallable LookupPolicyCallable(const LookupPolicyRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::LookupPolicy, request); } /** * An Async wrapper for LookupPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void LookupPolicyAsync(const LookupPolicyRequestT& request, const LookupPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::LookupPolicy, request, handler, context); } /** *

Publishes a development schema with a major version and a recommended minor * version.

See Also:

AWS * API Reference

*/ virtual Model::PublishSchemaOutcome PublishSchema(const Model::PublishSchemaRequest& request) const; /** * A Callable wrapper for PublishSchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PublishSchemaOutcomeCallable PublishSchemaCallable(const PublishSchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::PublishSchema, request); } /** * An Async wrapper for PublishSchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PublishSchemaAsync(const PublishSchemaRequestT& request, const PublishSchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::PublishSchema, request, handler, context); } /** *

Allows a schema to be updated using JSON upload. Only available for * development schemas. See JSON * Schema Format for more information.

See Also:

AWS * API Reference

*/ virtual Model::PutSchemaFromJsonOutcome PutSchemaFromJson(const Model::PutSchemaFromJsonRequest& request) const; /** * A Callable wrapper for PutSchemaFromJson that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutSchemaFromJsonOutcomeCallable PutSchemaFromJsonCallable(const PutSchemaFromJsonRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::PutSchemaFromJson, request); } /** * An Async wrapper for PutSchemaFromJson that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutSchemaFromJsonAsync(const PutSchemaFromJsonRequestT& request, const PutSchemaFromJsonResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::PutSchemaFromJson, request, handler, context); } /** *

Removes the specified facet from the specified object.

See * Also:

AWS * API Reference

*/ virtual Model::RemoveFacetFromObjectOutcome RemoveFacetFromObject(const Model::RemoveFacetFromObjectRequest& request) const; /** * A Callable wrapper for RemoveFacetFromObject that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RemoveFacetFromObjectOutcomeCallable RemoveFacetFromObjectCallable(const RemoveFacetFromObjectRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::RemoveFacetFromObject, request); } /** * An Async wrapper for RemoveFacetFromObject that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RemoveFacetFromObjectAsync(const RemoveFacetFromObjectRequestT& request, const RemoveFacetFromObjectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::RemoveFacetFromObject, request, handler, context); } /** *

An API operation for adding tags to a resource.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::TagResource, request, handler, context); } /** *

An API operation for removing tags from a resource.

See Also:

* AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UntagResource, request, handler, context); } /** *

Does the following:

  1. Adds new Attributes, * Rules, or ObjectTypes.

  2. Updates * existing Attributes, Rules, or * ObjectTypes.

  3. Deletes existing * Attributes, Rules, or ObjectTypes.

    *

See Also:

AWS * API Reference

*/ virtual Model::UpdateFacetOutcome UpdateFacet(const Model::UpdateFacetRequest& request) const; /** * A Callable wrapper for UpdateFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateFacetOutcomeCallable UpdateFacetCallable(const UpdateFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpdateFacet, request); } /** * An Async wrapper for UpdateFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateFacetAsync(const UpdateFacetRequestT& request, const UpdateFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpdateFacet, request, handler, context); } /** *

Updates a given typed link’s attributes. Attributes to be updated must not * contribute to the typed link’s identity, as defined by its * IdentityAttributeOrder.

See Also:

AWS * API Reference

*/ virtual Model::UpdateLinkAttributesOutcome UpdateLinkAttributes(const Model::UpdateLinkAttributesRequest& request) const; /** * A Callable wrapper for UpdateLinkAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateLinkAttributesOutcomeCallable UpdateLinkAttributesCallable(const UpdateLinkAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpdateLinkAttributes, request); } /** * An Async wrapper for UpdateLinkAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateLinkAttributesAsync(const UpdateLinkAttributesRequestT& request, const UpdateLinkAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpdateLinkAttributes, request, handler, context); } /** *

Updates a given object's attributes.

See Also:

AWS * API Reference

*/ virtual Model::UpdateObjectAttributesOutcome UpdateObjectAttributes(const Model::UpdateObjectAttributesRequest& request) const; /** * A Callable wrapper for UpdateObjectAttributes that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateObjectAttributesOutcomeCallable UpdateObjectAttributesCallable(const UpdateObjectAttributesRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpdateObjectAttributes, request); } /** * An Async wrapper for UpdateObjectAttributes that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateObjectAttributesAsync(const UpdateObjectAttributesRequestT& request, const UpdateObjectAttributesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpdateObjectAttributes, request, handler, context); } /** *

Updates the schema name with a new name. Only development schema names can be * updated.

See Also:

AWS * API Reference

*/ virtual Model::UpdateSchemaOutcome UpdateSchema(const Model::UpdateSchemaRequest& request) const; /** * A Callable wrapper for UpdateSchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateSchemaOutcomeCallable UpdateSchemaCallable(const UpdateSchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpdateSchema, request); } /** * An Async wrapper for UpdateSchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateSchemaAsync(const UpdateSchemaRequestT& request, const UpdateSchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpdateSchema, request, handler, context); } /** *

Updates a TypedLinkFacet. For more information, see Typed * Links.

See Also:

AWS * API Reference

*/ virtual Model::UpdateTypedLinkFacetOutcome UpdateTypedLinkFacet(const Model::UpdateTypedLinkFacetRequest& request) const; /** * A Callable wrapper for UpdateTypedLinkFacet that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateTypedLinkFacetOutcomeCallable UpdateTypedLinkFacetCallable(const UpdateTypedLinkFacetRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpdateTypedLinkFacet, request); } /** * An Async wrapper for UpdateTypedLinkFacet that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateTypedLinkFacetAsync(const UpdateTypedLinkFacetRequestT& request, const UpdateTypedLinkFacetResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpdateTypedLinkFacet, request, handler, context); } /** *

Upgrades a single directory in-place using the * PublishedSchemaArn with schema updates found in * MinorVersion. 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.

See Also:

AWS * API Reference

*/ virtual Model::UpgradeAppliedSchemaOutcome UpgradeAppliedSchema(const Model::UpgradeAppliedSchemaRequest& request) const; /** * A Callable wrapper for UpgradeAppliedSchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpgradeAppliedSchemaOutcomeCallable UpgradeAppliedSchemaCallable(const UpgradeAppliedSchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpgradeAppliedSchema, request); } /** * An Async wrapper for UpgradeAppliedSchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpgradeAppliedSchemaAsync(const UpgradeAppliedSchemaRequestT& request, const UpgradeAppliedSchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpgradeAppliedSchema, request, handler, context); } /** *

Upgrades a published schema under a new minor version revision using the * current contents of DevelopmentSchemaArn.

See Also:

* AWS * API Reference

*/ virtual Model::UpgradePublishedSchemaOutcome UpgradePublishedSchema(const Model::UpgradePublishedSchemaRequest& request) const; /** * A Callable wrapper for UpgradePublishedSchema that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpgradePublishedSchemaOutcomeCallable UpgradePublishedSchemaCallable(const UpgradePublishedSchemaRequestT& request) const { return SubmitCallable(&CloudDirectoryClient::UpgradePublishedSchema, request); } /** * An Async wrapper for UpgradePublishedSchema that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpgradePublishedSchemaAsync(const UpgradePublishedSchemaRequestT& request, const UpgradePublishedSchemaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&CloudDirectoryClient::UpgradePublishedSchema, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const CloudDirectoryClientConfiguration& clientConfiguration); CloudDirectoryClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace CloudDirectory } // namespace Aws