/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace signer { namespace Model { class CancelSigningProfileRequest; class DescribeSigningJobRequest; class GetSigningPlatformRequest; class GetSigningProfileRequest; class ListSigningJobsRequest; class ListSigningPlatformsRequest; class ListSigningProfilesRequest; class ListTagsForResourceRequest; class PutSigningProfileRequest; class StartSigningJobRequest; class TagResourceRequest; class UntagResourceRequest; typedef Aws::Utils::Outcome CancelSigningProfileOutcome; typedef Aws::Utils::Outcome DescribeSigningJobOutcome; typedef Aws::Utils::Outcome GetSigningPlatformOutcome; typedef Aws::Utils::Outcome GetSigningProfileOutcome; typedef Aws::Utils::Outcome ListSigningJobsOutcome; typedef Aws::Utils::Outcome ListSigningPlatformsOutcome; typedef Aws::Utils::Outcome ListSigningProfilesOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome PutSigningProfileOutcome; typedef Aws::Utils::Outcome StartSigningJobOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef std::future CancelSigningProfileOutcomeCallable; typedef std::future DescribeSigningJobOutcomeCallable; typedef std::future GetSigningPlatformOutcomeCallable; typedef std::future GetSigningProfileOutcomeCallable; typedef std::future ListSigningJobsOutcomeCallable; typedef std::future ListSigningPlatformsOutcomeCallable; typedef std::future ListSigningProfilesOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future PutSigningProfileOutcomeCallable; typedef std::future StartSigningJobOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; } // namespace Model class SignerClient; typedef std::function&) > CancelSigningProfileResponseReceivedHandler; typedef std::function&) > DescribeSigningJobResponseReceivedHandler; typedef std::function&) > GetSigningPlatformResponseReceivedHandler; typedef std::function&) > GetSigningProfileResponseReceivedHandler; typedef std::function&) > ListSigningJobsResponseReceivedHandler; typedef std::function&) > ListSigningPlatformsResponseReceivedHandler; typedef std::function&) > ListSigningProfilesResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > PutSigningProfileResponseReceivedHandler; typedef std::function&) > StartSigningJobResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; /** *

With code signing for IoT, you can sign code that you create for any IoT * device that is supported by Amazon Web Services (AWS). Code signing is available * through Amazon * FreeRTOS and AWS IoT Device * Management, and integrated with AWS Certificate Manager * (ACM). In order to sign code, you import a third-party code signing * certificate with ACM that is used to sign updates in Amazon FreeRTOS and AWS IoT * Device Management. For general information about using code signing, see the Code * Signing for IoT Developer Guide.

*/ class AWS_SIGNER_API SignerClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * 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. */ SignerClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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. */ SignerClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::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 */ SignerClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~SignerClient(); /** *

Changes the state of an ACTIVE signing profile to * CANCELED. A canceled profile is still viewable with the * ListSigningProfiles operation, but it cannot perform new signing * jobs, and is deleted two years after cancelation.

See Also:

AWS * API Reference

*/ virtual Model::CancelSigningProfileOutcome CancelSigningProfile(const Model::CancelSigningProfileRequest& request) const; /** *

Changes the state of an ACTIVE signing profile to * CANCELED. A canceled profile is still viewable with the * ListSigningProfiles operation, but it cannot perform new signing * jobs, and is deleted two years after cancelation.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CancelSigningProfileOutcomeCallable CancelSigningProfileCallable(const Model::CancelSigningProfileRequest& request) const; /** *

Changes the state of an ACTIVE signing profile to * CANCELED. A canceled profile is still viewable with the * ListSigningProfiles operation, but it cannot perform new signing * jobs, and is deleted two years after cancelation.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CancelSigningProfileAsync(const Model::CancelSigningProfileRequest& request, const CancelSigningProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information about a specific code signing job. You specify the job by * using the jobId value that is returned by the * StartSigningJob operation.

See Also:

AWS * API Reference

*/ virtual Model::DescribeSigningJobOutcome DescribeSigningJob(const Model::DescribeSigningJobRequest& request) const; /** *

Returns information about a specific code signing job. You specify the job by * using the jobId value that is returned by the * StartSigningJob operation.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeSigningJobOutcomeCallable DescribeSigningJobCallable(const Model::DescribeSigningJobRequest& request) const; /** *

Returns information about a specific code signing job. You specify the job by * using the jobId value that is returned by the * StartSigningJob operation.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeSigningJobAsync(const Model::DescribeSigningJobRequest& request, const DescribeSigningJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information on a specific signing platform.

See Also:

* AWS * API Reference

*/ virtual Model::GetSigningPlatformOutcome GetSigningPlatform(const Model::GetSigningPlatformRequest& request) const; /** *

Returns information on a specific signing platform.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSigningPlatformOutcomeCallable GetSigningPlatformCallable(const Model::GetSigningPlatformRequest& request) const; /** *

Returns information on a specific signing platform.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSigningPlatformAsync(const Model::GetSigningPlatformRequest& request, const GetSigningPlatformResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns information on a specific signing profile.

See Also:

* AWS * API Reference

*/ virtual Model::GetSigningProfileOutcome GetSigningProfile(const Model::GetSigningProfileRequest& request) const; /** *

Returns information on a specific signing profile.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::GetSigningProfileOutcomeCallable GetSigningProfileCallable(const Model::GetSigningProfileRequest& request) const; /** *

Returns information on a specific signing profile.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void GetSigningProfileAsync(const Model::GetSigningProfileRequest& request, const GetSigningProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all your signing jobs. You can use the maxResults * parameter to limit the number of signing jobs that are returned in the response. * If additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

*/ virtual Model::ListSigningJobsOutcome ListSigningJobs(const Model::ListSigningJobsRequest& request) const; /** *

Lists all your signing jobs. You can use the maxResults * parameter to limit the number of signing jobs that are returned in the response. * If additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSigningJobsOutcomeCallable ListSigningJobsCallable(const Model::ListSigningJobsRequest& request) const; /** *

Lists all your signing jobs. You can use the maxResults * parameter to limit the number of signing jobs that are returned in the response. * If additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSigningJobsAsync(const Model::ListSigningJobsRequest& request, const ListSigningJobsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all signing platforms available in code signing that match the request * parameters. If additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

*/ virtual Model::ListSigningPlatformsOutcome ListSigningPlatforms(const Model::ListSigningPlatformsRequest& request) const; /** *

Lists all signing platforms available in code signing that match the request * parameters. If additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSigningPlatformsOutcomeCallable ListSigningPlatformsCallable(const Model::ListSigningPlatformsRequest& request) const; /** *

Lists all signing platforms available in code signing that match the request * parameters. If additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSigningPlatformsAsync(const Model::ListSigningPlatformsRequest& request, const ListSigningPlatformsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists all available signing profiles in your AWS account. Returns only * profiles with an ACTIVE status unless the * includeCanceled request field is set to true. If * additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

*/ virtual Model::ListSigningProfilesOutcome ListSigningProfiles(const Model::ListSigningProfilesRequest& request) const; /** *

Lists all available signing profiles in your AWS account. Returns only * profiles with an ACTIVE status unless the * includeCanceled request field is set to true. If * additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListSigningProfilesOutcomeCallable ListSigningProfilesCallable(const Model::ListSigningProfilesRequest& request) const; /** *

Lists all available signing profiles in your AWS account. Returns only * profiles with an ACTIVE status unless the * includeCanceled request field is set to true. If * additional jobs remain to be listed, code signing returns a * nextToken value. Use this value in subsequent calls to * ListSigningJobs to fetch the remaining values. You can continue * calling ListSigningJobs with your maxResults parameter * and with new values that code signing returns in the nextToken * parameter until all of your signing jobs have been returned.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListSigningProfilesAsync(const Model::ListSigningProfilesRequest& request, const ListSigningProfilesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns a list of the tags associated with a signing profile * resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

Returns a list of the tags associated with a signing profile * resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

Returns a list of the tags associated with a signing profile * resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a signing profile. A signing profile is a code signing template that * can be used to carry out a pre-defined signing job. For more information, see http://docs.aws.amazon.com/signer/latest/developerguide/gs-profile.html *

See Also:

AWS * API Reference

*/ virtual Model::PutSigningProfileOutcome PutSigningProfile(const Model::PutSigningProfileRequest& request) const; /** *

Creates a signing profile. A signing profile is a code signing template that * can be used to carry out a pre-defined signing job. For more information, see http://docs.aws.amazon.com/signer/latest/developerguide/gs-profile.html *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::PutSigningProfileOutcomeCallable PutSigningProfileCallable(const Model::PutSigningProfileRequest& request) const; /** *

Creates a signing profile. A signing profile is a code signing template that * can be used to carry out a pre-defined signing job. For more information, see http://docs.aws.amazon.com/signer/latest/developerguide/gs-profile.html *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void PutSigningProfileAsync(const Model::PutSigningProfileRequest& request, const PutSigningProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Initiates a signing job to be performed on the code provided. Signing jobs * are viewable by the ListSigningJobs operation for two years after * they are performed. Note the following requirements:

  • You must * create an Amazon S3 source bucket. For more information, see Create * a Bucket in the Amazon S3 Getting Started Guide.

  • *

    Your S3 source bucket must be version enabled.

  • You must * create an S3 destination bucket. Code signing uses your S3 destination bucket to * write your signed code.

  • You specify the name of the source and * destination buckets when calling the StartSigningJob operation.

    *
  • You must also specify a request token that identifies your request * to code signing.

You can call the DescribeSigningJob * and the ListSigningJobs actions after you call * StartSigningJob.

For a Java example that shows how to use * this action, see http://docs.aws.amazon.com/acm/latest/userguide/ *

See Also:

AWS * API Reference

*/ virtual Model::StartSigningJobOutcome StartSigningJob(const Model::StartSigningJobRequest& request) const; /** *

Initiates a signing job to be performed on the code provided. Signing jobs * are viewable by the ListSigningJobs operation for two years after * they are performed. Note the following requirements:

  • You must * create an Amazon S3 source bucket. For more information, see Create * a Bucket in the Amazon S3 Getting Started Guide.

  • *

    Your S3 source bucket must be version enabled.

  • You must * create an S3 destination bucket. Code signing uses your S3 destination bucket to * write your signed code.

  • You specify the name of the source and * destination buckets when calling the StartSigningJob operation.

    *
  • You must also specify a request token that identifies your request * to code signing.

You can call the DescribeSigningJob * and the ListSigningJobs actions after you call * StartSigningJob.

For a Java example that shows how to use * this action, see http://docs.aws.amazon.com/acm/latest/userguide/ *

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::StartSigningJobOutcomeCallable StartSigningJobCallable(const Model::StartSigningJobRequest& request) const; /** *

Initiates a signing job to be performed on the code provided. Signing jobs * are viewable by the ListSigningJobs operation for two years after * they are performed. Note the following requirements:

  • You must * create an Amazon S3 source bucket. For more information, see Create * a Bucket in the Amazon S3 Getting Started Guide.

  • *

    Your S3 source bucket must be version enabled.

  • You must * create an S3 destination bucket. Code signing uses your S3 destination bucket to * write your signed code.

  • You specify the name of the source and * destination buckets when calling the StartSigningJob operation.

    *
  • You must also specify a request token that identifies your request * to code signing.

You can call the DescribeSigningJob * and the ListSigningJobs actions after you call * StartSigningJob.

For a Java example that shows how to use * this action, see http://docs.aws.amazon.com/acm/latest/userguide/ *

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void StartSigningJobAsync(const Model::StartSigningJobRequest& request, const StartSigningJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Adds one or more tags to a signing profile. Tags are labels that you can use * to identify and organize your AWS resources. Each tag consists of a key and an * optional value. To specify the signing profile, use its Amazon Resource Name * (ARN). To specify the tag, use a key-value pair.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to a signing profile. Tags are labels that you can use * to identify and organize your AWS resources. Each tag consists of a key and an * optional value. To specify the signing profile, use its Amazon Resource Name * (ARN). To specify the tag, use a key-value pair.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Adds one or more tags to a signing profile. Tags are labels that you can use * to identify and organize your AWS resources. Each tag consists of a key and an * optional value. To specify the signing profile, use its Amazon Resource Name * (ARN). To specify the tag, use a key-value pair.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Removes one or more tags from a signing profile. To remove the tags, specify * a list of tag keys.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from a signing profile. To remove the tags, specify * a list of tag keys.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Removes one or more tags from a signing profile. To remove the tags, specify * a list of tag keys.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CancelSigningProfileAsyncHelper(const Model::CancelSigningProfileRequest& request, const CancelSigningProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeSigningJobAsyncHelper(const Model::DescribeSigningJobRequest& request, const DescribeSigningJobResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSigningPlatformAsyncHelper(const Model::GetSigningPlatformRequest& request, const GetSigningPlatformResponseReceivedHandler& handler, const std::shared_ptr& context) const; void GetSigningProfileAsyncHelper(const Model::GetSigningProfileRequest& request, const GetSigningProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSigningJobsAsyncHelper(const Model::ListSigningJobsRequest& request, const ListSigningJobsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSigningPlatformsAsyncHelper(const Model::ListSigningPlatformsRequest& request, const ListSigningPlatformsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListSigningProfilesAsyncHelper(const Model::ListSigningProfilesRequest& request, const ListSigningProfilesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void PutSigningProfileAsyncHelper(const Model::PutSigningProfileRequest& request, const PutSigningProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void StartSigningJobAsyncHelper(const Model::StartSigningJobRequest& request, const StartSigningJobResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace signer } // namespace Aws