/** * 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 ConnectCases { /** *

With Amazon Connect Cases, your agents can track and manage customer issues * that require multiple interactions, follow-up tasks, and teams in your contact * center. A case represents a customer issue. It records the issue, the steps and * interactions taken to resolve the issue, and the outcome. For more information, * see Amazon * Connect Cases in the Amazon Connect Administrator Guide.

*/ class AWS_CONNECTCASES_API ConnectCasesClient : 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 ConnectCasesClientConfiguration ClientConfigurationType; typedef ConnectCasesEndpointProvider 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. */ ConnectCasesClient(const Aws::ConnectCases::ConnectCasesClientConfiguration& clientConfiguration = Aws::ConnectCases::ConnectCasesClientConfiguration(), 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. */ ConnectCasesClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ConnectCases::ConnectCasesClientConfiguration& clientConfiguration = Aws::ConnectCases::ConnectCasesClientConfiguration()); /** * 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 */ ConnectCasesClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::ConnectCases::ConnectCasesClientConfiguration& clientConfiguration = Aws::ConnectCases::ConnectCasesClientConfiguration()); /* 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. */ ConnectCasesClient(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. */ ConnectCasesClient(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 */ ConnectCasesClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~ConnectCasesClient(); /** *

Returns the description for the list of fields in the request parameters. *

See Also:

AWS * API Reference

*/ virtual Model::BatchGetFieldOutcome BatchGetField(const Model::BatchGetFieldRequest& request) const; /** * A Callable wrapper for BatchGetField that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchGetFieldOutcomeCallable BatchGetFieldCallable(const BatchGetFieldRequestT& request) const { return SubmitCallable(&ConnectCasesClient::BatchGetField, request); } /** * An Async wrapper for BatchGetField that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchGetFieldAsync(const BatchGetFieldRequestT& request, const BatchGetFieldResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::BatchGetField, request, handler, context); } /** *

Creates and updates a set of field options for a single select field in a * Cases domain.

See Also:

AWS * API Reference

*/ virtual Model::BatchPutFieldOptionsOutcome BatchPutFieldOptions(const Model::BatchPutFieldOptionsRequest& request) const; /** * A Callable wrapper for BatchPutFieldOptions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::BatchPutFieldOptionsOutcomeCallable BatchPutFieldOptionsCallable(const BatchPutFieldOptionsRequestT& request) const { return SubmitCallable(&ConnectCasesClient::BatchPutFieldOptions, request); } /** * An Async wrapper for BatchPutFieldOptions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void BatchPutFieldOptionsAsync(const BatchPutFieldOptionsRequestT& request, const BatchPutFieldOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::BatchPutFieldOptions, request, handler, context); } /** *

Creates a case in the specified Cases domain. Case system and custom fields * are taken as an array id/value pairs with a declared data types.

*

The following fields are required when creating a case:


         * <ul> <li> <p> <code>customer_id</code> - You must
         * provide the full customer profile ARN in this format:
         * <code>arn:aws:profile:your AWS Region:your AWS account ID:domains/profiles
         * domain name/profiles/profile ID</code> </p> </li> <li>
         * <p> <code>title</code> </p> </li> </ul>
         * </note> 

See Also:

AWS * API Reference

*/ virtual Model::CreateCaseOutcome CreateCase(const Model::CreateCaseRequest& request) const; /** * A Callable wrapper for CreateCase that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateCaseOutcomeCallable CreateCaseCallable(const CreateCaseRequestT& request) const { return SubmitCallable(&ConnectCasesClient::CreateCase, request); } /** * An Async wrapper for CreateCase that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateCaseAsync(const CreateCaseRequestT& request, const CreateCaseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::CreateCase, request, handler, context); } /** *

Creates a domain, which is a container for all case data, such as cases, * fields, templates and layouts. Each Amazon Connect instance can be associated * with only one Cases domain.

This will not associate your * connect instance to Cases domain. Instead, use the Amazon Connect CreateIntegrationAssociation * API. You need specific IAM permissions to successfully associate the Cases * domain. For more information, see Onboard * to Cases.

 </important> 

See * Also:

AWS * API Reference

*/ virtual Model::CreateDomainOutcome CreateDomain(const Model::CreateDomainRequest& request) const; /** * A Callable wrapper for CreateDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateDomainOutcomeCallable CreateDomainCallable(const CreateDomainRequestT& request) const { return SubmitCallable(&ConnectCasesClient::CreateDomain, request); } /** * An Async wrapper for CreateDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateDomainAsync(const CreateDomainRequestT& request, const CreateDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::CreateDomain, request, handler, context); } /** *

Creates a field in the Cases domain. This field is used to define the case * object model (that is, defines what data can be captured on cases) in a Cases * domain.

See Also:

AWS * API Reference

*/ virtual Model::CreateFieldOutcome CreateField(const Model::CreateFieldRequest& request) const; /** * A Callable wrapper for CreateField that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateFieldOutcomeCallable CreateFieldCallable(const CreateFieldRequestT& request) const { return SubmitCallable(&ConnectCasesClient::CreateField, request); } /** * An Async wrapper for CreateField that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateFieldAsync(const CreateFieldRequestT& request, const CreateFieldResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::CreateField, request, handler, context); } /** *

Creates a layout in the Cases domain. Layouts define the following * configuration in the top section and More Info tab of the Cases user * interface:

  • Fields to display to the users

  • *

    Field ordering

Title and Status fields cannot be * part of layouts since they are not configurable.

See * Also:

AWS * API Reference

*/ virtual Model::CreateLayoutOutcome CreateLayout(const Model::CreateLayoutRequest& request) const; /** * A Callable wrapper for CreateLayout that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateLayoutOutcomeCallable CreateLayoutCallable(const CreateLayoutRequestT& request) const { return SubmitCallable(&ConnectCasesClient::CreateLayout, request); } /** * An Async wrapper for CreateLayout that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateLayoutAsync(const CreateLayoutRequestT& request, const CreateLayoutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::CreateLayout, request, handler, context); } /** *

Creates a related item (comments, tasks, and contacts) and associates it with * a case.

A Related Item is a resource that is associated with a * case. It may or may not have an external identifier linking it to an external * resource (for example, a contactArn). All Related Items have their * own internal identifier, the relatedItemArn. Examples of related * items include comments and contacts.

*

See Also:

AWS * API Reference

*/ virtual Model::CreateRelatedItemOutcome CreateRelatedItem(const Model::CreateRelatedItemRequest& request) const; /** * A Callable wrapper for CreateRelatedItem that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateRelatedItemOutcomeCallable CreateRelatedItemCallable(const CreateRelatedItemRequestT& request) const { return SubmitCallable(&ConnectCasesClient::CreateRelatedItem, request); } /** * An Async wrapper for CreateRelatedItem that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateRelatedItemAsync(const CreateRelatedItemRequestT& request, const CreateRelatedItemResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::CreateRelatedItem, request, handler, context); } /** *

Creates a template in the Cases domain. This template is used to define the * case object model (that is, to define what data can be captured on cases) in a * Cases domain. A template must have a unique name within a domain, and it must * reference existing field IDs and layout IDs. Additionally, multiple fields with * same IDs are not allowed within the same Template. A template can be either * Active or Inactive, as indicated by its status. Inactive templates cannot be * used to create cases.

See Also:

AWS * API Reference

*/ virtual Model::CreateTemplateOutcome CreateTemplate(const Model::CreateTemplateRequest& request) const; /** * A Callable wrapper for CreateTemplate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateTemplateOutcomeCallable CreateTemplateCallable(const CreateTemplateRequestT& request) const { return SubmitCallable(&ConnectCasesClient::CreateTemplate, request); } /** * An Async wrapper for CreateTemplate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateTemplateAsync(const CreateTemplateRequestT& request, const CreateTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::CreateTemplate, request, handler, context); } /** *

Deletes a Cases domain.

 <note> <p>After deleting
         * your domain you must disassociate the deleted domain from your Amazon Connect
         * instance with another API call before being able to use Cases again with this
         * Amazon Connect instance. See <a
         * href="https://docs.aws.amazon.com/connect/latest/APIReference/API_DeleteIntegrationAssociation.html">DeleteIntegrationAssociation</a>.</p>
         * </note> 

See Also:

AWS * API Reference

*/ virtual Model::DeleteDomainOutcome DeleteDomain(const Model::DeleteDomainRequest& request) const; /** * A Callable wrapper for DeleteDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteDomainOutcomeCallable DeleteDomainCallable(const DeleteDomainRequestT& request) const { return SubmitCallable(&ConnectCasesClient::DeleteDomain, request); } /** * An Async wrapper for DeleteDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteDomainAsync(const DeleteDomainRequestT& request, const DeleteDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::DeleteDomain, request, handler, context); } /** *

Returns information about a specific case if it exists.

See * Also:

AWS * API Reference

*/ virtual Model::GetCaseOutcome GetCase(const Model::GetCaseRequest& request) const; /** * A Callable wrapper for GetCase that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetCaseOutcomeCallable GetCaseCallable(const GetCaseRequestT& request) const { return SubmitCallable(&ConnectCasesClient::GetCase, request); } /** * An Async wrapper for GetCase that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetCaseAsync(const GetCaseRequestT& request, const GetCaseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::GetCase, request, handler, context); } /** *

Returns the case event publishing configuration.

See Also:

* AWS * API Reference

*/ virtual Model::GetCaseEventConfigurationOutcome GetCaseEventConfiguration(const Model::GetCaseEventConfigurationRequest& request) const; /** * A Callable wrapper for GetCaseEventConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetCaseEventConfigurationOutcomeCallable GetCaseEventConfigurationCallable(const GetCaseEventConfigurationRequestT& request) const { return SubmitCallable(&ConnectCasesClient::GetCaseEventConfiguration, request); } /** * An Async wrapper for GetCaseEventConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetCaseEventConfigurationAsync(const GetCaseEventConfigurationRequestT& request, const GetCaseEventConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::GetCaseEventConfiguration, request, handler, context); } /** *

Returns information about a specific domain if it exists.

See * Also:

AWS * API Reference

*/ virtual Model::GetDomainOutcome GetDomain(const Model::GetDomainRequest& request) const; /** * A Callable wrapper for GetDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDomainOutcomeCallable GetDomainCallable(const GetDomainRequestT& request) const { return SubmitCallable(&ConnectCasesClient::GetDomain, request); } /** * An Async wrapper for GetDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDomainAsync(const GetDomainRequestT& request, const GetDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::GetDomain, request, handler, context); } /** *

Returns the details for the requested layout.

See Also:

AWS * API Reference

*/ virtual Model::GetLayoutOutcome GetLayout(const Model::GetLayoutRequest& request) const; /** * A Callable wrapper for GetLayout that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetLayoutOutcomeCallable GetLayoutCallable(const GetLayoutRequestT& request) const { return SubmitCallable(&ConnectCasesClient::GetLayout, request); } /** * An Async wrapper for GetLayout that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetLayoutAsync(const GetLayoutRequestT& request, const GetLayoutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::GetLayout, request, handler, context); } /** *

Returns the details for the requested template.

See Also:

* AWS * API Reference

*/ virtual Model::GetTemplateOutcome GetTemplate(const Model::GetTemplateRequest& request) const; /** * A Callable wrapper for GetTemplate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetTemplateOutcomeCallable GetTemplateCallable(const GetTemplateRequestT& request) const { return SubmitCallable(&ConnectCasesClient::GetTemplate, request); } /** * An Async wrapper for GetTemplate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetTemplateAsync(const GetTemplateRequestT& request, const GetTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::GetTemplate, request, handler, context); } /** *

Lists cases for a given contact.

See Also:

AWS * API Reference

*/ virtual Model::ListCasesForContactOutcome ListCasesForContact(const Model::ListCasesForContactRequest& request) const; /** * A Callable wrapper for ListCasesForContact that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListCasesForContactOutcomeCallable ListCasesForContactCallable(const ListCasesForContactRequestT& request) const { return SubmitCallable(&ConnectCasesClient::ListCasesForContact, request); } /** * An Async wrapper for ListCasesForContact that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListCasesForContactAsync(const ListCasesForContactRequestT& request, const ListCasesForContactResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::ListCasesForContact, request, handler, context); } /** *

Lists all cases domains in the Amazon Web Services account. Each list item is * a condensed summary object of the domain.

See Also:

AWS * API Reference

*/ virtual Model::ListDomainsOutcome ListDomains(const Model::ListDomainsRequest& request) const; /** * A Callable wrapper for ListDomains that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListDomainsOutcomeCallable ListDomainsCallable(const ListDomainsRequestT& request) const { return SubmitCallable(&ConnectCasesClient::ListDomains, request); } /** * An Async wrapper for ListDomains that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListDomainsAsync(const ListDomainsRequestT& request, const ListDomainsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::ListDomains, request, handler, context); } /** *

Lists all of the field options for a field identifier in the domain. *

See Also:

AWS * API Reference

*/ virtual Model::ListFieldOptionsOutcome ListFieldOptions(const Model::ListFieldOptionsRequest& request) const; /** * A Callable wrapper for ListFieldOptions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListFieldOptionsOutcomeCallable ListFieldOptionsCallable(const ListFieldOptionsRequestT& request) const { return SubmitCallable(&ConnectCasesClient::ListFieldOptions, request); } /** * An Async wrapper for ListFieldOptions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListFieldOptionsAsync(const ListFieldOptionsRequestT& request, const ListFieldOptionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::ListFieldOptions, request, handler, context); } /** *

Lists all fields in a Cases domain.

See Also:

AWS * API Reference

*/ virtual Model::ListFieldsOutcome ListFields(const Model::ListFieldsRequest& request) const; /** * A Callable wrapper for ListFields that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListFieldsOutcomeCallable ListFieldsCallable(const ListFieldsRequestT& request) const { return SubmitCallable(&ConnectCasesClient::ListFields, request); } /** * An Async wrapper for ListFields that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListFieldsAsync(const ListFieldsRequestT& request, const ListFieldsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::ListFields, request, handler, context); } /** *

Lists all layouts in the given cases domain. Each list item is a condensed * summary object of the layout.

See Also:

AWS * API Reference

*/ virtual Model::ListLayoutsOutcome ListLayouts(const Model::ListLayoutsRequest& request) const; /** * A Callable wrapper for ListLayouts that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListLayoutsOutcomeCallable ListLayoutsCallable(const ListLayoutsRequestT& request) const { return SubmitCallable(&ConnectCasesClient::ListLayouts, request); } /** * An Async wrapper for ListLayouts that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListLayoutsAsync(const ListLayoutsRequestT& request, const ListLayoutsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::ListLayouts, request, handler, context); } /** *

Lists tags for a resource.

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(&ConnectCasesClient::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(&ConnectCasesClient::ListTagsForResource, request, handler, context); } /** *

Lists all of the templates in a Cases domain. Each list item is a condensed * summary object of the template.

See Also:

AWS * API Reference

*/ virtual Model::ListTemplatesOutcome ListTemplates(const Model::ListTemplatesRequest& request) const; /** * A Callable wrapper for ListTemplates that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTemplatesOutcomeCallable ListTemplatesCallable(const ListTemplatesRequestT& request) const { return SubmitCallable(&ConnectCasesClient::ListTemplates, request); } /** * An Async wrapper for ListTemplates that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTemplatesAsync(const ListTemplatesRequestT& request, const ListTemplatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::ListTemplates, request, handler, context); } /** *

API for adding case event publishing configuration

See Also:

* AWS * API Reference

*/ virtual Model::PutCaseEventConfigurationOutcome PutCaseEventConfiguration(const Model::PutCaseEventConfigurationRequest& request) const; /** * A Callable wrapper for PutCaseEventConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutCaseEventConfigurationOutcomeCallable PutCaseEventConfigurationCallable(const PutCaseEventConfigurationRequestT& request) const { return SubmitCallable(&ConnectCasesClient::PutCaseEventConfiguration, request); } /** * An Async wrapper for PutCaseEventConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutCaseEventConfigurationAsync(const PutCaseEventConfigurationRequestT& request, const PutCaseEventConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::PutCaseEventConfiguration, request, handler, context); } /** *

Searches for cases within their associated Cases domain. Search results are * returned as a paginated list of abridged case documents.

For * customer_id you must provide the full customer profile ARN in this * format: arn:aws:profile:your AWS Region:your AWS account * ID:domains/profiles domain name/profiles/profile ID.

*

See Also:

AWS * API Reference

*/ virtual Model::SearchCasesOutcome SearchCases(const Model::SearchCasesRequest& request) const; /** * A Callable wrapper for SearchCases that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SearchCasesOutcomeCallable SearchCasesCallable(const SearchCasesRequestT& request) const { return SubmitCallable(&ConnectCasesClient::SearchCases, request); } /** * An Async wrapper for SearchCases that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SearchCasesAsync(const SearchCasesRequestT& request, const SearchCasesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::SearchCases, request, handler, context); } /** *

Searches for related items that are associated with a case.

If * no filters are provided, this returns all related items associated with a * case.

See Also:

AWS * API Reference

*/ virtual Model::SearchRelatedItemsOutcome SearchRelatedItems(const Model::SearchRelatedItemsRequest& request) const; /** * A Callable wrapper for SearchRelatedItems that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::SearchRelatedItemsOutcomeCallable SearchRelatedItemsCallable(const SearchRelatedItemsRequestT& request) const { return SubmitCallable(&ConnectCasesClient::SearchRelatedItems, request); } /** * An Async wrapper for SearchRelatedItems that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void SearchRelatedItemsAsync(const SearchRelatedItemsRequestT& request, const SearchRelatedItemsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::SearchRelatedItems, request, handler, context); } /** *

Adds 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(&ConnectCasesClient::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(&ConnectCasesClient::TagResource, request, handler, context); } /** *

Untags 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(&ConnectCasesClient::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(&ConnectCasesClient::UntagResource, request, handler, context); } /** *

Updates the values of fields on a case. Fields to be updated are received as * an array of id/value pairs identical to the CreateCase input .

*

If the action is successful, the service sends back an HTTP 200 response with * an empty HTTP body.

See Also:

AWS * API Reference

*/ virtual Model::UpdateCaseOutcome UpdateCase(const Model::UpdateCaseRequest& request) const; /** * A Callable wrapper for UpdateCase that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateCaseOutcomeCallable UpdateCaseCallable(const UpdateCaseRequestT& request) const { return SubmitCallable(&ConnectCasesClient::UpdateCase, request); } /** * An Async wrapper for UpdateCase that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateCaseAsync(const UpdateCaseRequestT& request, const UpdateCaseResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::UpdateCase, request, handler, context); } /** *

Updates the properties of an existing field.

See Also:

AWS * API Reference

*/ virtual Model::UpdateFieldOutcome UpdateField(const Model::UpdateFieldRequest& request) const; /** * A Callable wrapper for UpdateField that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateFieldOutcomeCallable UpdateFieldCallable(const UpdateFieldRequestT& request) const { return SubmitCallable(&ConnectCasesClient::UpdateField, request); } /** * An Async wrapper for UpdateField that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateFieldAsync(const UpdateFieldRequestT& request, const UpdateFieldResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::UpdateField, request, handler, context); } /** *

Updates the attributes of an existing layout.

If the action is * successful, the service sends back an HTTP 200 response with an empty HTTP * body.

A ValidationException is returned when you add * non-existent fieldIds to a layout.

Title and Status * fields cannot be part of layouts because they are not configurable.

*

See Also:

AWS * API Reference

*/ virtual Model::UpdateLayoutOutcome UpdateLayout(const Model::UpdateLayoutRequest& request) const; /** * A Callable wrapper for UpdateLayout that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateLayoutOutcomeCallable UpdateLayoutCallable(const UpdateLayoutRequestT& request) const { return SubmitCallable(&ConnectCasesClient::UpdateLayout, request); } /** * An Async wrapper for UpdateLayout that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateLayoutAsync(const UpdateLayoutRequestT& request, const UpdateLayoutResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::UpdateLayout, request, handler, context); } /** *

Updates the attributes of an existing template. The template attributes that * can be modified include name, description, * layoutConfiguration, requiredFields, and * status. At least one of these attributes must not be null. If a * null value is provided for a given attribute, that attribute is ignored and its * current value is preserved.

See Also:

AWS * API Reference

*/ virtual Model::UpdateTemplateOutcome UpdateTemplate(const Model::UpdateTemplateRequest& request) const; /** * A Callable wrapper for UpdateTemplate that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateTemplateOutcomeCallable UpdateTemplateCallable(const UpdateTemplateRequestT& request) const { return SubmitCallable(&ConnectCasesClient::UpdateTemplate, request); } /** * An Async wrapper for UpdateTemplate that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateTemplateAsync(const UpdateTemplateRequestT& request, const UpdateTemplateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&ConnectCasesClient::UpdateTemplate, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const ConnectCasesClientConfiguration& clientConfiguration); ConnectCasesClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace ConnectCases } // namespace Aws