diff --git a/VERSION b/VERSION index 3a908052473..1be848333eb 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.11.456 \ No newline at end of file +1.11.457 \ No newline at end of file diff --git a/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/BedrockEmbeddingModelConfiguration.h b/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/BedrockEmbeddingModelConfiguration.h index f26583ede02..daff2b3077c 100644 --- a/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/BedrockEmbeddingModelConfiguration.h +++ b/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/BedrockEmbeddingModelConfiguration.h @@ -5,6 +5,8 @@ #pragma once #include +#include +#include namespace Aws { @@ -46,10 +48,31 @@ namespace Model inline void SetDimensions(int value) { m_dimensionsHasBeenSet = true; m_dimensions = value; } inline BedrockEmbeddingModelConfiguration& WithDimensions(int value) { SetDimensions(value); return *this;} ///@} + + ///@{ + /** + *

The data type for the vectors when using a model to convert text into vector + * embeddings. The model must support the specified data type for vector + * embeddings. Floating-point (float32) is the default data type, and is supported + * by most models for vector embeddings. See Supported + * embeddings models for information on the available models and their vector + * data types.

+ */ + inline const EmbeddingDataType& GetEmbeddingDataType() const{ return m_embeddingDataType; } + inline bool EmbeddingDataTypeHasBeenSet() const { return m_embeddingDataTypeHasBeenSet; } + inline void SetEmbeddingDataType(const EmbeddingDataType& value) { m_embeddingDataTypeHasBeenSet = true; m_embeddingDataType = value; } + inline void SetEmbeddingDataType(EmbeddingDataType&& value) { m_embeddingDataTypeHasBeenSet = true; m_embeddingDataType = std::move(value); } + inline BedrockEmbeddingModelConfiguration& WithEmbeddingDataType(const EmbeddingDataType& value) { SetEmbeddingDataType(value); return *this;} + inline BedrockEmbeddingModelConfiguration& WithEmbeddingDataType(EmbeddingDataType&& value) { SetEmbeddingDataType(std::move(value)); return *this;} + ///@} private: int m_dimensions; bool m_dimensionsHasBeenSet = false; + + EmbeddingDataType m_embeddingDataType; + bool m_embeddingDataTypeHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/EmbeddingDataType.h b/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/EmbeddingDataType.h new file mode 100644 index 00000000000..b1d6b00d721 --- /dev/null +++ b/generated/src/aws-cpp-sdk-bedrock-agent/include/aws/bedrock-agent/model/EmbeddingDataType.h @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace BedrockAgent +{ +namespace Model +{ + enum class EmbeddingDataType + { + NOT_SET, + FLOAT32, + BINARY + }; + +namespace EmbeddingDataTypeMapper +{ +AWS_BEDROCKAGENT_API EmbeddingDataType GetEmbeddingDataTypeForName(const Aws::String& name); + +AWS_BEDROCKAGENT_API Aws::String GetNameForEmbeddingDataType(EmbeddingDataType value); +} // namespace EmbeddingDataTypeMapper +} // namespace Model +} // namespace BedrockAgent +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-bedrock-agent/source/model/BedrockEmbeddingModelConfiguration.cpp b/generated/src/aws-cpp-sdk-bedrock-agent/source/model/BedrockEmbeddingModelConfiguration.cpp index 51427701b4c..1899b2f62c6 100644 --- a/generated/src/aws-cpp-sdk-bedrock-agent/source/model/BedrockEmbeddingModelConfiguration.cpp +++ b/generated/src/aws-cpp-sdk-bedrock-agent/source/model/BedrockEmbeddingModelConfiguration.cpp @@ -20,7 +20,9 @@ namespace Model BedrockEmbeddingModelConfiguration::BedrockEmbeddingModelConfiguration() : m_dimensions(0), - m_dimensionsHasBeenSet(false) + m_dimensionsHasBeenSet(false), + m_embeddingDataType(EmbeddingDataType::NOT_SET), + m_embeddingDataTypeHasBeenSet(false) { } @@ -39,6 +41,13 @@ BedrockEmbeddingModelConfiguration& BedrockEmbeddingModelConfiguration::operator m_dimensionsHasBeenSet = true; } + if(jsonValue.ValueExists("embeddingDataType")) + { + m_embeddingDataType = EmbeddingDataTypeMapper::GetEmbeddingDataTypeForName(jsonValue.GetString("embeddingDataType")); + + m_embeddingDataTypeHasBeenSet = true; + } + return *this; } @@ -52,6 +61,11 @@ JsonValue BedrockEmbeddingModelConfiguration::Jsonize() const } + if(m_embeddingDataTypeHasBeenSet) + { + payload.WithString("embeddingDataType", EmbeddingDataTypeMapper::GetNameForEmbeddingDataType(m_embeddingDataType)); + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-bedrock-agent/source/model/EmbeddingDataType.cpp b/generated/src/aws-cpp-sdk-bedrock-agent/source/model/EmbeddingDataType.cpp new file mode 100644 index 00000000000..258c0c09aef --- /dev/null +++ b/generated/src/aws-cpp-sdk-bedrock-agent/source/model/EmbeddingDataType.cpp @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace BedrockAgent + { + namespace Model + { + namespace EmbeddingDataTypeMapper + { + + static const int FLOAT32_HASH = HashingUtils::HashString("FLOAT32"); + static const int BINARY_HASH = HashingUtils::HashString("BINARY"); + + + EmbeddingDataType GetEmbeddingDataTypeForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == FLOAT32_HASH) + { + return EmbeddingDataType::FLOAT32; + } + else if (hashCode == BINARY_HASH) + { + return EmbeddingDataType::BINARY; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return EmbeddingDataType::NOT_SET; + } + + Aws::String GetNameForEmbeddingDataType(EmbeddingDataType enumValue) + { + switch(enumValue) + { + case EmbeddingDataType::NOT_SET: + return {}; + case EmbeddingDataType::FLOAT32: + return "FLOAT32"; + case EmbeddingDataType::BINARY: + return "BINARY"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace EmbeddingDataTypeMapper + } // namespace Model + } // namespace BedrockAgent +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceClient.h b/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceClient.h index a57fc5a3fd3..89fa640c31d 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceClient.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceClient.h @@ -98,6 +98,39 @@ namespace ConfigService /* End of legacy constructors due deprecation */ virtual ~ConfigServiceClient(); + /** + *

Adds all resource types specified in the ResourceTypes list to + * the RecordingGroup + * of specified configuration recorder and includes those resource types when + * recording.

For this operation, the specified configuration recorder must + * use a RecordingStrategy + * that is either INCLUSION_BY_RESOURCE_TYPES or + * EXCLUSION_BY_RESOURCE_TYPES.

See Also:

AWS + * API Reference

+ */ + virtual Model::AssociateResourceTypesOutcome AssociateResourceTypes(const Model::AssociateResourceTypesRequest& request) const; + + /** + * A Callable wrapper for AssociateResourceTypes that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::AssociateResourceTypesOutcomeCallable AssociateResourceTypesCallable(const AssociateResourceTypesRequestT& request) const + { + return SubmitCallable(&ConfigServiceClient::AssociateResourceTypes, request); + } + + /** + * An Async wrapper for AssociateResourceTypes that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void AssociateResourceTypesAsync(const AssociateResourceTypesRequestT& request, const AssociateResourceTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ConfigServiceClient::AssociateResourceTypes, request, handler, context); + } + /** *

Returns the current configuration items for resources that are present in * your Config aggregator. The operation also returns a list of resources that are @@ -194,7 +227,19 @@ namespace ConfigService * PutConfigRule or DeleteConfigRule request for the * rule, you will receive a ResourceInUseException.

You can * check the state of a rule by using the DescribeConfigRules - * request.

See Also:

Recommendation: Stop recording resource compliance + * before deleting rules

It is highly recommended that you stop + * recording for the AWS::Config::ResourceCompliance resource type + * before you delete rules in your account. Deleting rules creates CIs for + * AWS::Config::ResourceCompliance and can affect your Config configuration + * recorder costs. If you are deleting rules which evaluate a large number of + * resource types, this can lead to a spike in the number of CIs recorded.

+ *

Best practice:

  1. Stop recording + * AWS::Config::ResourceCompliance

  2. Delete + * rule(s)

  3. Turn on recording for + * AWS::Config::ResourceCompliance

See + * Also:

AWS * API Reference

*/ @@ -245,13 +290,12 @@ namespace ConfigService } /** - *

Deletes the configuration recorder.

After the configuration recorder - * is deleted, Config will not record resource configuration changes until you - * create a new configuration recorder.

This action does not delete the - * configuration information that was previously recorded. You will be able to - * access the previously recorded information by using the - * GetResourceConfigHistory action, but you will not be able to access - * this information in the Config console until you create a new configuration + *

Deletes the customer managed configuration recorder.

This operation + * does not delete the configuration information that was previously recorded. You + * will be able to access the previously recorded information by using the GetResourceConfigHistory + * operation, but you will not be able to access this information in the Config + * console until you have created a new customer managed configuration * recorder.

See Also:

AWS * API Reference

@@ -307,8 +351,9 @@ namespace ConfigService /** *

Deletes the delivery channel.

Before you can delete the delivery - * channel, you must stop the configuration recorder by using the - * StopConfigurationRecorder action.

See Also:

StopConfigurationRecorder operation to stop the customer managed + * configuration recorder.

See Also:

AWS * API Reference

*/ @@ -558,6 +603,43 @@ namespace ConfigService return SubmitAsync(&ConfigServiceClient::DeleteRetentionConfiguration, request, handler, context); } + /** + *

Deletes an existing service-linked configuration recorder.

This + * operation does not delete the configuration information that was previously + * recorded. You will be able to access the previously recorded information by + * using the GetResourceConfigHistory + * operation, but you will not be able to access this information in the Config + * console until you have created a new service-linked configuration recorder for + * the same service.

The recording scope determines if you + * receive configuration items

The recording scope is set by the + * service that is linked to the configuration recorder and determines whether you + * receive configuration items (CIs) in the delivery channel. If the recording + * scope is internal, you will not receive CIs in the delivery channel.

+ *

See Also:

AWS + * API Reference

+ */ + virtual Model::DeleteServiceLinkedConfigurationRecorderOutcome DeleteServiceLinkedConfigurationRecorder(const Model::DeleteServiceLinkedConfigurationRecorderRequest& request) const; + + /** + * A Callable wrapper for DeleteServiceLinkedConfigurationRecorder that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::DeleteServiceLinkedConfigurationRecorderOutcomeCallable DeleteServiceLinkedConfigurationRecorderCallable(const DeleteServiceLinkedConfigurationRecorderRequestT& request) const + { + return SubmitCallable(&ConfigServiceClient::DeleteServiceLinkedConfigurationRecorder, request); + } + + /** + * An Async wrapper for DeleteServiceLinkedConfigurationRecorder that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void DeleteServiceLinkedConfigurationRecorderAsync(const DeleteServiceLinkedConfigurationRecorderRequestT& request, const DeleteServiceLinkedConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ConfigServiceClient::DeleteServiceLinkedConfigurationRecorder, request, handler, context); + } + /** *

Deletes the stored query for a single Amazon Web Services account and a * single Amazon Web Services Region.

See Also:

Returns a list of the conformance packs and their associated compliance - * status with the count of compliant and noncompliant Config rules within each - * conformance pack. Also returns the total rule count which includes compliant - * rules, noncompliant rules, and rules that cannot be evaluated due to - * insufficient data.

The results can return an empty result page, - * but if you have a nextToken, the results are displayed on the next - * page.

See Also:

Returns a list of the existing and deleted conformance packs and their + * associated compliance status with the count of compliant and noncompliant Config + * rules within each conformance pack. Also returns the total rule count which + * includes compliant rules, noncompliant rules, and rules that cannot be evaluated + * due to insufficient data.

The results can return an empty result + * page, but if you have a nextToken, the results are displayed on the + * next page.

See Also:

AWS * API Reference

*/ @@ -703,7 +785,7 @@ namespace ConfigService /** *

Indicates whether the specified Config rules are compliant. If a rule is - * noncompliant, this action returns the number of Amazon Web Services resources + * noncompliant, this operation returns the number of Amazon Web Services resources * that do not comply with the rule.

A rule is compliant if all of the * evaluated resources comply with it. It is noncompliant if any of these resources * do not comply.

If Config has no current evaluation results for the rule, @@ -746,7 +828,7 @@ namespace ConfigService /** *

Indicates whether the specified Amazon Web Services resources are compliant. - * If a resource is noncompliant, this action returns the number of Config rules + * If a resource is noncompliant, this operation returns the number of Config rules * that the resource does not comply with.

A resource is compliant if it * complies with all the Config rules that evaluate it. It is noncompliant if it * does not comply with one or more of these rules.

If Config has no current @@ -871,9 +953,9 @@ namespace ConfigService /** *

Returns the details of one or more configuration aggregators. If the - * configuration aggregator is not specified, this action returns the details for - * all the configuration aggregators associated with the account.

See - * Also:

See Also:

AWS * API Reference

*/ @@ -898,14 +980,14 @@ namespace ConfigService } /** - *

Returns the current status of the specified configuration recorder as well as - * the status of the last recording event for the recorder. If a configuration - * recorder is not specified, this action returns the status of all configuration - * recorders associated with the account.

>You can specify only - * one configuration recorder for each Amazon Web Services Region for each account. - * For a detailed status of recording events over time, add your Config events to - * Amazon CloudWatch metrics and use CloudWatch metrics.

See - * Also:

Returns the current status of the configuration recorder you specify as well + * as the status of the last recording event for the configuration recorders.

+ *

For a detailed status of recording events over time, add your Config events + * to Amazon CloudWatch metrics and use CloudWatch metrics.

If a + * configuration recorder is not specified, this operation returns the status for + * the customer managed configuration recorder configured for the account, if + * applicable.

When making a request to this operation, you can only + * specify one configuration recorder.

See Also:

AWS * API Reference

*/ @@ -930,11 +1012,11 @@ namespace ConfigService } /** - *

Returns the details for the specified configuration recorders. If the - * configuration recorder is not specified, this action returns the details for all - * configuration recorders associated with the account.

You can - * specify only one configuration recorder for each Amazon Web Services Region for - * each account.

See Also:

Returns details for the configuration recorder you specify.

If a + * configuration recorder is not specified, this operation returns details for the + * customer managed configuration recorder configured for the account, if + * applicable.

When making a request to this operation, you can only + * specify one configuration recorder.

See Also:

AWS * API Reference

*/ @@ -1039,10 +1121,10 @@ namespace ConfigService /** *

Returns the current status of the specified delivery channel. If a delivery - * channel is not specified, this action returns the current status of all delivery - * channels associated with the account.

Currently, you can specify - * only one delivery channel per region in your account.

See - * Also:

Currently, you can + * specify only one delivery channel per region in your account.

+ *

See Also:

AWS * API Reference

*/ @@ -1068,7 +1150,7 @@ namespace ConfigService /** *

Returns details about the specified delivery channel. If a delivery channel - * is not specified, this action returns the details of all delivery channels + * is not specified, this operation returns the details of all delivery channels * associated with the account.

Currently, you can specify only one * delivery channel per region in your account.

See Also:

* Returns the details of one or more retention configurations. If the retention - * configuration name is not specified, this action returns the details for all the - * retention configurations for that account.

Currently, Config + * configuration name is not specified, this operation returns the details for all + * the retention configurations for that account.

Currently, Config * supports only one retention configuration per region in your account.

*

See Also:

AWS @@ -1383,6 +1465,38 @@ namespace ConfigService return SubmitAsync(&ConfigServiceClient::DescribeRetentionConfigurations, request, handler, context); } + /** + *

Removes all resource types specified in the ResourceTypes list + * from the RecordingGroup + * of configuration recorder and excludes these resource types when recording.

+ *

For this operation, the configuration recorder must use a RecordingStrategy + * that is either INCLUSION_BY_RESOURCE_TYPES or + * EXCLUSION_BY_RESOURCE_TYPES.

See Also:

AWS + * API Reference

+ */ + virtual Model::DisassociateResourceTypesOutcome DisassociateResourceTypes(const Model::DisassociateResourceTypesRequest& request) const; + + /** + * A Callable wrapper for DisassociateResourceTypes that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::DisassociateResourceTypesOutcomeCallable DisassociateResourceTypesCallable(const DisassociateResourceTypesRequestT& request) const + { + return SubmitCallable(&ConfigServiceClient::DisassociateResourceTypes, request); + } + + /** + * An Async wrapper for DisassociateResourceTypes that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void DisassociateResourceTypesAsync(const DisassociateResourceTypesRequestT& request, const DisassociateResourceTypesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ConfigServiceClient::DisassociateResourceTypes, request, handler, context); + } + /** *

Returns the evaluation results for the specified Config rule for a specific * resource in a rule. The results indicate which Amazon Web Services resources @@ -1504,7 +1618,8 @@ namespace ConfigService /** *

Returns configuration item that is aggregated for your specific resource in a - * specific source account and region.

See Also:

The API does not return + * results for deleted resources.

See Also:

AWS * API Reference

*/ @@ -1978,6 +2093,32 @@ namespace ConfigService return SubmitAsync(&ConfigServiceClient::ListAggregateDiscoveredResources, request, handler, context); } + /** + *

Returns a list of configuration recorders depending on the filters you + * specify.

See Also:

AWS + * API Reference

+ */ + virtual Model::ListConfigurationRecordersOutcome ListConfigurationRecorders(const Model::ListConfigurationRecordersRequest& request = {}) const; + + /** + * A Callable wrapper for ListConfigurationRecorders that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::ListConfigurationRecordersOutcomeCallable ListConfigurationRecordersCallable(const ListConfigurationRecordersRequestT& request = {}) const + { + return SubmitCallable(&ConfigServiceClient::ListConfigurationRecorders, request); + } + + /** + * An Async wrapper for ListConfigurationRecorders that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void ListConfigurationRecordersAsync(const ListConfigurationRecordersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const ListConfigurationRecordersRequestT& request = {}) const + { + return SubmitAsync(&ConfigServiceClient::ListConfigurationRecorders, request, handler, context); + } + /** *

Returns a list of conformance pack compliance scores. A compliance score is * the percentage of the number of compliant rule-resource combinations in a @@ -2127,12 +2268,18 @@ namespace ConfigService /** *

Authorizes the aggregator account and region to collect data from the source - * account and region.

PutAggregationAuthorization is - * an idempotent API. Subsequent requests won’t create a duplicate resource if one - * was already created. If a following request has different tags - * values, Config will ignore these differences and treat it as an idempotent - * request of the previous. In this case, tags will not be updated, - * even if they are different.

See Also:

Tags are added at creation and cannot be + * updated with this operation

+ * PutAggregationAuthorization is an idempotent API. Subsequent + * requests won’t create a duplicate resource if one was already created. If a + * following request has different tags values, Config will ignore + * these differences and treat it as an idempotent request of the previous. In this + * case, tags will not be updated, even if they are different.

+ *

Use TagResource + * and UntagResource + * to update tags after creation.

See Also:

AWS * API Reference

*/ @@ -2194,12 +2341,16 @@ namespace ConfigService * rules, see Evaluating * Resources with Config Rules in the Config Developer Guide.

- *

PutConfigRule is an idempotent API. Subsequent requests won’t - * create a duplicate resource if one was already created. If a following request - * has different tags values, Config will ignore these differences and - * treat it as an idempotent request of the previous. In this case, - * tags will not be updated, even if they are different.

- *

See Also:

Tags are added at creation and cannot be updated with this operation + *

PutConfigRule is an idempotent API. Subsequent requests + * won’t create a duplicate resource if one was already created. If a following + * request has different tags values, Config will ignore these + * differences and treat it as an idempotent request of the previous. In this case, + * tags will not be updated, even if they are different.

Use TagResource + * and UntagResource + * to update tags after creation.

See Also:

AWS * API Reference

*/ @@ -2241,12 +2392,17 @@ namespace ConfigService * administrator, see Register * a Delegated Administrator in the Config developer guide.

- *

PutConfigurationAggregator is an idempotent API. - * Subsequent requests won’t create a duplicate resource if one was already + *

Tags are added at creation and cannot be updated with this + * operation

PutConfigurationAggregator is an idempotent + * API. Subsequent requests won’t create a duplicate resource if one was already * created. If a following request has different tags values, Config * will ignore these differences and treat it as an idempotent request of the * previous. In this case, tags will not be updated, even if they are - * different.

See Also:

Use TagResource + * and UntagResource + * to update tags after creation.

See Also:

AWS * API Reference

*/ @@ -2271,17 +2427,35 @@ namespace ConfigService } /** - *

Creates a new configuration recorder to record configuration changes for - * specified resource types.

You can also use this action to change the - * roleARN or the recordingGroup of an existing recorder. - * For more information, see Creates or updates the customer managed configuration recorder.

You + * can use this operation to create a new customer managed configuration recorder + * or to update the roleARN and the recordingGroup for an + * existing customer managed configuration recorder.

To start the customer + * managed configuration recorder and begin recording configuration changes for the + * resource types you specify, use the StartConfigurationRecorder + * operation.

For more information, see - * Managing the Configuration Recorder in the Config Developer - * Guide.

You can specify only one configuration recorder for - * each Amazon Web Services Region for each account.

If the configuration - * recorder does not have the recordingGroup field specified, the - * default is to record all supported resource types.

See - * Also:

Working with the Configuration Recorder in the Config Developer + * Guide.

One customer managed configuration recorder per + * account per Region

You can create only one customer managed + * configuration recorder for each account for each Amazon Web Services Region.

+ *

Default is to record all supported resource types, excluding the global + * IAM resource types

If you have not specified values for the + * recordingGroup field, the default for the customer managed + * configuration recorder is to record all supported resource types, excluding the + * global IAM resource types: AWS::IAM::Group, + * AWS::IAM::Policy, AWS::IAM::Role, and + * AWS::IAM::User.

Tags are added at creation and cannot be + * updated

PutConfigurationRecorder is an idempotent API. + * Subsequent requests won’t create a duplicate resource if one was already + * created. If a following request has different tags values, Config will ignore + * these differences and treat it as an idempotent request of the previous. In this + * case, tags will not be updated, even if they are different.

Use TagResource + * and UntagResource + * to update tags after creation.

See Also:

AWS * API Reference

*/ @@ -2341,19 +2515,15 @@ namespace ConfigService } /** - *

Creates a delivery channel object to deliver configuration information and - * other compliance information to an Amazon S3 bucket and Amazon SNS topic. For - * more information, see Notifications - * that Config Sends to an Amazon SNS topic.

Before you can create a - * delivery channel, you must create a configuration recorder.

You can use - * this action to change the Amazon S3 bucket or an Amazon SNS topic of the - * existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS - * topic, call this action and specify the changed values for the S3 bucket and the - * SNS topic. If you specify a different value for either the S3 bucket or the SNS - * topic, this action will keep the existing value for the parameter that is not - * changed.

You can have only one delivery channel per region in your - * account.

See Also:

Creates or updates a delivery channel to deliver configuration information + * and other compliance information.

You can use this operation to create a + * new delivery channel or to update the Amazon S3 bucket and the Amazon SNS topic + * of an existing delivery channel.

For more information, see + * Working with the Delivery Channel in the Config Developer + * Guide.

One delivery channel per account per Region + *

You can have only one delivery channel for each account for each Amazon + * Web Services Region.

See Also:

AWS * API Reference

*/ @@ -2379,7 +2549,7 @@ namespace ConfigService /** *

Used by an Lambda function to deliver evaluation results to Config. This - * action is required in every Lambda function that is invoked by an Config + * operation is required in every Lambda function that is invoked by an Config * rule.

See Also:

AWS * API Reference

@@ -2629,8 +2799,11 @@ namespace ConfigService * initiate the possible Config evaluation results, see Concepts * | Config Rules in the Config Developer Guide.

- * Auto remediation can be initiated even for compliant resources

If - * you enable auto remediation for a specific Config rule using the Exceptions cannot be placed on service-linked remediation actions

+ *

You cannot place an exception on service-linked remediation actions, such as + * remediation actions put by an organizational conformance pack.

+ *

Auto remediation can be initiated even for compliant resources + *

If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations * API or the Config console, it initiates the remediation process for all * non-compliant resources for that specific rule. The auto remediation process @@ -2730,15 +2903,61 @@ namespace ConfigService return SubmitAsync(&ConfigServiceClient::PutRetentionConfiguration, request, handler, context); } + /** + *

Creates a service-linked configuration recorder that is linked to a specific + * Amazon Web Services service based on the ServicePrincipal you + * specify.

The configuration recorder's name, + * recordingGroup, recordingMode, and + * recordingScope is set by the service that is linked to the + * configuration recorder.

For more information, see + * Working with the Configuration Recorder in the Config Developer + * Guide.

This API creates a service-linked role + * AWSServiceRoleForConfig in your account. The service-linked role is + * created only when the role does not exist in your account.

The + * recording scope determines if you receive configuration items

The + * recording scope is set by the service that is linked to the configuration + * recorder and determines whether you receive configuration items (CIs) in the + * delivery channel. If the recording scope is internal, you will not receive CIs + * in the delivery channel.

Tags are added at creation and cannot be + * updated with this operation

Use TagResource + * and UntagResource + * to update tags after creation.

See Also:

AWS + * API Reference

+ */ + virtual Model::PutServiceLinkedConfigurationRecorderOutcome PutServiceLinkedConfigurationRecorder(const Model::PutServiceLinkedConfigurationRecorderRequest& request) const; + + /** + * A Callable wrapper for PutServiceLinkedConfigurationRecorder that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::PutServiceLinkedConfigurationRecorderOutcomeCallable PutServiceLinkedConfigurationRecorderCallable(const PutServiceLinkedConfigurationRecorderRequestT& request) const + { + return SubmitCallable(&ConfigServiceClient::PutServiceLinkedConfigurationRecorder, request); + } + + /** + * An Async wrapper for PutServiceLinkedConfigurationRecorder that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void PutServiceLinkedConfigurationRecorderAsync(const PutServiceLinkedConfigurationRecorderRequestT& request, const PutServiceLinkedConfigurationRecorderResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const + { + return SubmitAsync(&ConfigServiceClient::PutServiceLinkedConfigurationRecorder, request, handler, context); + } + /** *

Saves a new query or updates an existing saved query. The * QueryName must be unique for a single Amazon Web Services account * and a single Amazon Web Services Region. You can create upto 300 queries in a * single Amazon Web Services account and a single Amazon Web Services Region.

- *

PutStoredQuery is an idempotent API. Subsequent requests - * won’t create a duplicate resource if one was already created. If a following - * request has different tags values, Config will ignore these - * differences and treat it as an idempotent request of the previous. In this case, + *

Tags are added at creation and cannot be updated

+ * PutStoredQuery is an idempotent API. Subsequent requests won’t + * create a duplicate resource if one was already created. If a following request + * has different tags values, Config will ignore these differences and + * treat it as an idempotent request of the previous. In this case, * tags will not be updated, even if they are different.

*

See Also:

AWS @@ -2884,10 +3103,13 @@ namespace ConfigService } /** - *

Starts recording configurations of the Amazon Web Services resources you have - * selected to record in your Amazon Web Services account.

You must have - * created at least one delivery channel to successfully start the configuration - * recorder.

See Also:

Starts the customer managed configuration recorder. The customer managed + * configuration recorder will begin recording configuration changes for the + * resource types you specify.

You must have created a delivery channel to + * successfully start the customer managed configuration recorder. You can use the + * PutDeliveryChannel + * operation to create a delivery channel.

See Also:

AWS * API Reference

*/ @@ -2983,9 +3205,9 @@ namespace ConfigService } /** - *

Stops recording configurations of the Amazon Web Services resources you have - * selected to record in your Amazon Web Services account.

See Also:

- * Stops the customer managed configuration recorder. The customer managed + * configuration recorder will stop recording configuration changes for the + * resource types you have specified.

See Also:

AWS * API Reference

*/ @@ -3010,11 +3232,11 @@ namespace ConfigService } /** - *

Associates the specified tags to a resource with the specified resourceArn. - * If existing tags on a resource are not specified in the request parameters, they - * are not changed. If existing tags are specified, however, then their values will - * be updated. When a resource is deleted, the tags associated with that resource - * are deleted as well.

See Also:

Associates the specified tags to a resource with the specified + * ResourceArn. If existing tags on a resource are not specified in + * the request parameters, they are not changed. If existing tags are specified, + * however, then their values will be updated. When a resource is deleted, the tags + * associated with that resource are deleted as well.

See Also:

AWS * API Reference

*/ diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceErrors.h b/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceErrors.h index 0bb9c4eb7c7..cb296cdd4c0 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceErrors.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceErrors.h @@ -47,7 +47,8 @@ enum class ConfigServiceErrors UNKNOWN = 100, /////////////////////////////////////////////////////////////////////////////////////////// - CONFORMANCE_PACK_TEMPLATE_VALIDATION= static_cast(Aws::Client::CoreErrors::SERVICE_EXTENSION_START_RANGE) + 1, + CONFLICT= static_cast(Aws::Client::CoreErrors::SERVICE_EXTENSION_START_RANGE) + 1, + CONFORMANCE_PACK_TEMPLATE_VALIDATION, IDEMPOTENT_PARAMETER_MISMATCH, INSUFFICIENT_DELIVERY_POLICY, INSUFFICIENT_PERMISSIONS, @@ -97,7 +98,8 @@ enum class ConfigServiceErrors RESOURCE_CONCURRENT_MODIFICATION, RESOURCE_IN_USE, RESOURCE_NOT_DISCOVERED, - TOO_MANY_TAGS + TOO_MANY_TAGS, + UNMODIFIABLE_ENTITY }; class AWS_CONFIGSERVICE_API ConfigServiceError : public Aws::Client::AWSError diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceServiceClientModel.h b/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceServiceClientModel.h index 6a97dec1324..0e2e336eafc 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceServiceClientModel.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/ConfigServiceServiceClientModel.h @@ -18,11 +18,13 @@ /* End of generic header includes */ /* Service model headers required in ConfigServiceClient header */ +#include #include #include #include #include #include +#include #include #include #include @@ -50,6 +52,7 @@ #include #include #include +#include #include #include #include @@ -70,6 +73,7 @@ #include #include #include +#include #include #include #include @@ -85,6 +89,7 @@ #include #include #include +#include #include #include #include @@ -93,6 +98,7 @@ #include #include #include +#include #include #include #include @@ -159,6 +165,7 @@ namespace Aws namespace Model { /* Service model forward declarations required in ConfigServiceClient header */ + class AssociateResourceTypesRequest; class BatchGetAggregateResourceConfigRequest; class BatchGetResourceConfigRequest; class DeleteAggregationAuthorizationRequest; @@ -175,6 +182,7 @@ namespace Aws class DeleteRemediationExceptionsRequest; class DeleteResourceConfigRequest; class DeleteRetentionConfigurationRequest; + class DeleteServiceLinkedConfigurationRecorderRequest; class DeleteStoredQueryRequest; class DeliverConfigSnapshotRequest; class DescribeAggregateComplianceByConfigRulesRequest; @@ -202,6 +210,7 @@ namespace Aws class DescribeRemediationExceptionsRequest; class DescribeRemediationExecutionStatusRequest; class DescribeRetentionConfigurationsRequest; + class DisassociateResourceTypesRequest; class GetAggregateComplianceDetailsByConfigRuleRequest; class GetAggregateConfigRuleComplianceSummaryRequest; class GetAggregateConformancePackComplianceSummaryRequest; @@ -222,6 +231,7 @@ namespace Aws class GetResourceEvaluationSummaryRequest; class GetStoredQueryRequest; class ListAggregateDiscoveredResourcesRequest; + class ListConfigurationRecordersRequest; class ListConformancePackComplianceScoresRequest; class ListDiscoveredResourcesRequest; class ListResourceEvaluationsRequest; @@ -241,6 +251,7 @@ namespace Aws class PutRemediationExceptionsRequest; class PutResourceConfigRequest; class PutRetentionConfigurationRequest; + class PutServiceLinkedConfigurationRecorderRequest; class PutStoredQueryRequest; class SelectAggregateResourceConfigRequest; class SelectResourceConfigRequest; @@ -254,6 +265,7 @@ namespace Aws /* End of service model forward declarations required in ConfigServiceClient header */ /* Service model Outcome class definitions */ + typedef Aws::Utils::Outcome AssociateResourceTypesOutcome; typedef Aws::Utils::Outcome BatchGetAggregateResourceConfigOutcome; typedef Aws::Utils::Outcome BatchGetResourceConfigOutcome; typedef Aws::Utils::Outcome DeleteAggregationAuthorizationOutcome; @@ -270,6 +282,7 @@ namespace Aws typedef Aws::Utils::Outcome DeleteRemediationExceptionsOutcome; typedef Aws::Utils::Outcome DeleteResourceConfigOutcome; typedef Aws::Utils::Outcome DeleteRetentionConfigurationOutcome; + typedef Aws::Utils::Outcome DeleteServiceLinkedConfigurationRecorderOutcome; typedef Aws::Utils::Outcome DeleteStoredQueryOutcome; typedef Aws::Utils::Outcome DeliverConfigSnapshotOutcome; typedef Aws::Utils::Outcome DescribeAggregateComplianceByConfigRulesOutcome; @@ -297,6 +310,7 @@ namespace Aws typedef Aws::Utils::Outcome DescribeRemediationExceptionsOutcome; typedef Aws::Utils::Outcome DescribeRemediationExecutionStatusOutcome; typedef Aws::Utils::Outcome DescribeRetentionConfigurationsOutcome; + typedef Aws::Utils::Outcome DisassociateResourceTypesOutcome; typedef Aws::Utils::Outcome GetAggregateComplianceDetailsByConfigRuleOutcome; typedef Aws::Utils::Outcome GetAggregateConfigRuleComplianceSummaryOutcome; typedef Aws::Utils::Outcome GetAggregateConformancePackComplianceSummaryOutcome; @@ -317,6 +331,7 @@ namespace Aws typedef Aws::Utils::Outcome GetResourceEvaluationSummaryOutcome; typedef Aws::Utils::Outcome GetStoredQueryOutcome; typedef Aws::Utils::Outcome ListAggregateDiscoveredResourcesOutcome; + typedef Aws::Utils::Outcome ListConfigurationRecordersOutcome; typedef Aws::Utils::Outcome ListConformancePackComplianceScoresOutcome; typedef Aws::Utils::Outcome ListDiscoveredResourcesOutcome; typedef Aws::Utils::Outcome ListResourceEvaluationsOutcome; @@ -336,6 +351,7 @@ namespace Aws typedef Aws::Utils::Outcome PutRemediationExceptionsOutcome; typedef Aws::Utils::Outcome PutResourceConfigOutcome; typedef Aws::Utils::Outcome PutRetentionConfigurationOutcome; + typedef Aws::Utils::Outcome PutServiceLinkedConfigurationRecorderOutcome; typedef Aws::Utils::Outcome PutStoredQueryOutcome; typedef Aws::Utils::Outcome SelectAggregateResourceConfigOutcome; typedef Aws::Utils::Outcome SelectResourceConfigOutcome; @@ -349,6 +365,7 @@ namespace Aws /* End of service model Outcome class definitions */ /* Service model Outcome callable definitions */ + typedef std::future AssociateResourceTypesOutcomeCallable; typedef std::future BatchGetAggregateResourceConfigOutcomeCallable; typedef std::future BatchGetResourceConfigOutcomeCallable; typedef std::future DeleteAggregationAuthorizationOutcomeCallable; @@ -365,6 +382,7 @@ namespace Aws typedef std::future DeleteRemediationExceptionsOutcomeCallable; typedef std::future DeleteResourceConfigOutcomeCallable; typedef std::future DeleteRetentionConfigurationOutcomeCallable; + typedef std::future DeleteServiceLinkedConfigurationRecorderOutcomeCallable; typedef std::future DeleteStoredQueryOutcomeCallable; typedef std::future DeliverConfigSnapshotOutcomeCallable; typedef std::future DescribeAggregateComplianceByConfigRulesOutcomeCallable; @@ -392,6 +410,7 @@ namespace Aws typedef std::future DescribeRemediationExceptionsOutcomeCallable; typedef std::future DescribeRemediationExecutionStatusOutcomeCallable; typedef std::future DescribeRetentionConfigurationsOutcomeCallable; + typedef std::future DisassociateResourceTypesOutcomeCallable; typedef std::future GetAggregateComplianceDetailsByConfigRuleOutcomeCallable; typedef std::future GetAggregateConfigRuleComplianceSummaryOutcomeCallable; typedef std::future GetAggregateConformancePackComplianceSummaryOutcomeCallable; @@ -412,6 +431,7 @@ namespace Aws typedef std::future GetResourceEvaluationSummaryOutcomeCallable; typedef std::future GetStoredQueryOutcomeCallable; typedef std::future ListAggregateDiscoveredResourcesOutcomeCallable; + typedef std::future ListConfigurationRecordersOutcomeCallable; typedef std::future ListConformancePackComplianceScoresOutcomeCallable; typedef std::future ListDiscoveredResourcesOutcomeCallable; typedef std::future ListResourceEvaluationsOutcomeCallable; @@ -431,6 +451,7 @@ namespace Aws typedef std::future PutRemediationExceptionsOutcomeCallable; typedef std::future PutResourceConfigOutcomeCallable; typedef std::future PutRetentionConfigurationOutcomeCallable; + typedef std::future PutServiceLinkedConfigurationRecorderOutcomeCallable; typedef std::future PutStoredQueryOutcomeCallable; typedef std::future SelectAggregateResourceConfigOutcomeCallable; typedef std::future SelectResourceConfigOutcomeCallable; @@ -447,6 +468,7 @@ namespace Aws class ConfigServiceClient; /* Service model async handlers definitions */ + typedef std::function&) > AssociateResourceTypesResponseReceivedHandler; typedef std::function&) > BatchGetAggregateResourceConfigResponseReceivedHandler; typedef std::function&) > BatchGetResourceConfigResponseReceivedHandler; typedef std::function&) > DeleteAggregationAuthorizationResponseReceivedHandler; @@ -463,6 +485,7 @@ namespace Aws typedef std::function&) > DeleteRemediationExceptionsResponseReceivedHandler; typedef std::function&) > DeleteResourceConfigResponseReceivedHandler; typedef std::function&) > DeleteRetentionConfigurationResponseReceivedHandler; + typedef std::function&) > DeleteServiceLinkedConfigurationRecorderResponseReceivedHandler; typedef std::function&) > DeleteStoredQueryResponseReceivedHandler; typedef std::function&) > DeliverConfigSnapshotResponseReceivedHandler; typedef std::function&) > DescribeAggregateComplianceByConfigRulesResponseReceivedHandler; @@ -490,6 +513,7 @@ namespace Aws typedef std::function&) > DescribeRemediationExceptionsResponseReceivedHandler; typedef std::function&) > DescribeRemediationExecutionStatusResponseReceivedHandler; typedef std::function&) > DescribeRetentionConfigurationsResponseReceivedHandler; + typedef std::function&) > DisassociateResourceTypesResponseReceivedHandler; typedef std::function&) > GetAggregateComplianceDetailsByConfigRuleResponseReceivedHandler; typedef std::function&) > GetAggregateConfigRuleComplianceSummaryResponseReceivedHandler; typedef std::function&) > GetAggregateConformancePackComplianceSummaryResponseReceivedHandler; @@ -510,6 +534,7 @@ namespace Aws typedef std::function&) > GetResourceEvaluationSummaryResponseReceivedHandler; typedef std::function&) > GetStoredQueryResponseReceivedHandler; typedef std::function&) > ListAggregateDiscoveredResourcesResponseReceivedHandler; + typedef std::function&) > ListConfigurationRecordersResponseReceivedHandler; typedef std::function&) > ListConformancePackComplianceScoresResponseReceivedHandler; typedef std::function&) > ListDiscoveredResourcesResponseReceivedHandler; typedef std::function&) > ListResourceEvaluationsResponseReceivedHandler; @@ -529,6 +554,7 @@ namespace Aws typedef std::function&) > PutRemediationExceptionsResponseReceivedHandler; typedef std::function&) > PutResourceConfigResponseReceivedHandler; typedef std::function&) > PutRetentionConfigurationResponseReceivedHandler; + typedef std::function&) > PutServiceLinkedConfigurationRecorderResponseReceivedHandler; typedef std::function&) > PutStoredQueryResponseReceivedHandler; typedef std::function&) > SelectAggregateResourceConfigResponseReceivedHandler; typedef std::function&) > SelectResourceConfigResponseReceivedHandler; diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterResourceType.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterResourceType.h new file mode 100644 index 00000000000..09009faec18 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterResourceType.h @@ -0,0 +1,83 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + + /** + *

An object to filter the configuration recorders based on the resource types + * in scope for recording.

See Also:

AWS + * API Reference

+ */ + class AggregatorFilterResourceType + { + public: + AWS_CONFIGSERVICE_API AggregatorFilterResourceType(); + AWS_CONFIGSERVICE_API AggregatorFilterResourceType(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API AggregatorFilterResourceType& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + /** + *

The type of resource type filter to apply. INCLUDE specifies + * that the list of resource types in the Value field will be + * aggregated and no other resource types will be filtered.

+ */ + inline const AggregatorFilterType& GetType() const{ return m_type; } + inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } + inline void SetType(const AggregatorFilterType& value) { m_typeHasBeenSet = true; m_type = value; } + inline void SetType(AggregatorFilterType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } + inline AggregatorFilterResourceType& WithType(const AggregatorFilterType& value) { SetType(value); return *this;} + inline AggregatorFilterResourceType& WithType(AggregatorFilterType&& value) { SetType(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

Comma-separate list of resource types to filter your aggregated configuration + * recorders.

+ */ + inline const Aws::Vector& GetValue() const{ return m_value; } + inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } + inline void SetValue(const Aws::Vector& value) { m_valueHasBeenSet = true; m_value = value; } + inline void SetValue(Aws::Vector&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } + inline AggregatorFilterResourceType& WithValue(const Aws::Vector& value) { SetValue(value); return *this;} + inline AggregatorFilterResourceType& WithValue(Aws::Vector&& value) { SetValue(std::move(value)); return *this;} + inline AggregatorFilterResourceType& AddValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value.push_back(value); return *this; } + inline AggregatorFilterResourceType& AddValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value.push_back(std::move(value)); return *this; } + inline AggregatorFilterResourceType& AddValue(const char* value) { m_valueHasBeenSet = true; m_value.push_back(value); return *this; } + ///@} + private: + + AggregatorFilterType m_type; + bool m_typeHasBeenSet = false; + + Aws::Vector m_value; + bool m_valueHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterServicePrincipal.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterServicePrincipal.h new file mode 100644 index 00000000000..b1ce2f43307 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterServicePrincipal.h @@ -0,0 +1,83 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + + /** + *

An object to filter service-linked configuration recorders in an aggregator + * based on the linked Amazon Web Services service.

See Also:

AWS + * API Reference

+ */ + class AggregatorFilterServicePrincipal + { + public: + AWS_CONFIGSERVICE_API AggregatorFilterServicePrincipal(); + AWS_CONFIGSERVICE_API AggregatorFilterServicePrincipal(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API AggregatorFilterServicePrincipal& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + /** + *

The type of service principal filter to apply. INCLUDE specifies + * that the list of service principals in the Value field will be + * aggregated and no other service principals will be filtered.

+ */ + inline const AggregatorFilterType& GetType() const{ return m_type; } + inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } + inline void SetType(const AggregatorFilterType& value) { m_typeHasBeenSet = true; m_type = value; } + inline void SetType(AggregatorFilterType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } + inline AggregatorFilterServicePrincipal& WithType(const AggregatorFilterType& value) { SetType(value); return *this;} + inline AggregatorFilterServicePrincipal& WithType(AggregatorFilterType&& value) { SetType(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

Comma-separated list of service principals for the linked Amazon Web Services + * services to filter your aggregated service-linked configuration recorders.

+ */ + inline const Aws::Vector& GetValue() const{ return m_value; } + inline bool ValueHasBeenSet() const { return m_valueHasBeenSet; } + inline void SetValue(const Aws::Vector& value) { m_valueHasBeenSet = true; m_value = value; } + inline void SetValue(Aws::Vector&& value) { m_valueHasBeenSet = true; m_value = std::move(value); } + inline AggregatorFilterServicePrincipal& WithValue(const Aws::Vector& value) { SetValue(value); return *this;} + inline AggregatorFilterServicePrincipal& WithValue(Aws::Vector&& value) { SetValue(std::move(value)); return *this;} + inline AggregatorFilterServicePrincipal& AddValue(const Aws::String& value) { m_valueHasBeenSet = true; m_value.push_back(value); return *this; } + inline AggregatorFilterServicePrincipal& AddValue(Aws::String&& value) { m_valueHasBeenSet = true; m_value.push_back(std::move(value)); return *this; } + inline AggregatorFilterServicePrincipal& AddValue(const char* value) { m_valueHasBeenSet = true; m_value.push_back(value); return *this; } + ///@} + private: + + AggregatorFilterType m_type; + bool m_typeHasBeenSet = false; + + Aws::Vector m_value; + bool m_valueHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterType.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterType.h new file mode 100644 index 00000000000..4309772ec0d --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilterType.h @@ -0,0 +1,30 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + enum class AggregatorFilterType + { + NOT_SET, + INCLUDE + }; + +namespace AggregatorFilterTypeMapper +{ +AWS_CONFIGSERVICE_API AggregatorFilterType GetAggregatorFilterTypeForName(const Aws::String& name); + +AWS_CONFIGSERVICE_API Aws::String GetNameForAggregatorFilterType(AggregatorFilterType value); +} // namespace AggregatorFilterTypeMapper +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilters.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilters.h new file mode 100644 index 00000000000..9075ce9afba --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AggregatorFilters.h @@ -0,0 +1,78 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + + /** + *

An object to filter the data you specify for an aggregator.

See + * Also:

AWS + * API Reference

+ */ + class AggregatorFilters + { + public: + AWS_CONFIGSERVICE_API AggregatorFilters(); + AWS_CONFIGSERVICE_API AggregatorFilters(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API AggregatorFilters& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + /** + *

An object to filter the configuration recorders based on the resource types + * in scope for recording.

+ */ + inline const AggregatorFilterResourceType& GetResourceType() const{ return m_resourceType; } + inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } + inline void SetResourceType(const AggregatorFilterResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } + inline void SetResourceType(AggregatorFilterResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } + inline AggregatorFilters& WithResourceType(const AggregatorFilterResourceType& value) { SetResourceType(value); return *this;} + inline AggregatorFilters& WithResourceType(AggregatorFilterResourceType&& value) { SetResourceType(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

An object to filter service-linked configuration recorders in an aggregator + * based on the linked Amazon Web Services service.

+ */ + inline const AggregatorFilterServicePrincipal& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const AggregatorFilterServicePrincipal& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(AggregatorFilterServicePrincipal&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline AggregatorFilters& WithServicePrincipal(const AggregatorFilterServicePrincipal& value) { SetServicePrincipal(value); return *this;} + inline AggregatorFilters& WithServicePrincipal(AggregatorFilterServicePrincipal&& value) { SetServicePrincipal(std::move(value)); return *this;} + ///@} + private: + + AggregatorFilterResourceType m_resourceType; + bool m_resourceTypeHasBeenSet = false; + + AggregatorFilterServicePrincipal m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/AssociateResourceTypesRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AssociateResourceTypesRequest.h new file mode 100644 index 00000000000..961da7dabae --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AssociateResourceTypesRequest.h @@ -0,0 +1,78 @@ +/** + * 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 ConfigService +{ +namespace Model +{ + + /** + */ + class AssociateResourceTypesRequest : public ConfigServiceRequest + { + public: + AWS_CONFIGSERVICE_API AssociateResourceTypesRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "AssociateResourceTypes"; } + + AWS_CONFIGSERVICE_API Aws::String SerializePayload() const override; + + AWS_CONFIGSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the specified configuration recorder.

+ */ + inline const Aws::String& GetConfigurationRecorderArn() const{ return m_configurationRecorderArn; } + inline bool ConfigurationRecorderArnHasBeenSet() const { return m_configurationRecorderArnHasBeenSet; } + inline void SetConfigurationRecorderArn(const Aws::String& value) { m_configurationRecorderArnHasBeenSet = true; m_configurationRecorderArn = value; } + inline void SetConfigurationRecorderArn(Aws::String&& value) { m_configurationRecorderArnHasBeenSet = true; m_configurationRecorderArn = std::move(value); } + inline void SetConfigurationRecorderArn(const char* value) { m_configurationRecorderArnHasBeenSet = true; m_configurationRecorderArn.assign(value); } + inline AssociateResourceTypesRequest& WithConfigurationRecorderArn(const Aws::String& value) { SetConfigurationRecorderArn(value); return *this;} + inline AssociateResourceTypesRequest& WithConfigurationRecorderArn(Aws::String&& value) { SetConfigurationRecorderArn(std::move(value)); return *this;} + inline AssociateResourceTypesRequest& WithConfigurationRecorderArn(const char* value) { SetConfigurationRecorderArn(value); return *this;} + ///@} + + ///@{ + /** + *

The list of resource types you want to add to the recording group of the + * specified configuration recorder.

+ */ + inline const Aws::Vector& GetResourceTypes() const{ return m_resourceTypes; } + inline bool ResourceTypesHasBeenSet() const { return m_resourceTypesHasBeenSet; } + inline void SetResourceTypes(const Aws::Vector& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = value; } + inline void SetResourceTypes(Aws::Vector&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = std::move(value); } + inline AssociateResourceTypesRequest& WithResourceTypes(const Aws::Vector& value) { SetResourceTypes(value); return *this;} + inline AssociateResourceTypesRequest& WithResourceTypes(Aws::Vector&& value) { SetResourceTypes(std::move(value)); return *this;} + inline AssociateResourceTypesRequest& AddResourceTypes(const ResourceType& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } + inline AssociateResourceTypesRequest& AddResourceTypes(ResourceType&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(std::move(value)); return *this; } + ///@} + private: + + Aws::String m_configurationRecorderArn; + bool m_configurationRecorderArnHasBeenSet = false; + + Aws::Vector m_resourceTypes; + bool m_resourceTypesHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/AssociateResourceTypesResult.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AssociateResourceTypesResult.h new file mode 100644 index 00000000000..848ccc5cce5 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/AssociateResourceTypesResult.h @@ -0,0 +1,64 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + class AssociateResourceTypesResult + { + public: + AWS_CONFIGSERVICE_API AssociateResourceTypesResult(); + AWS_CONFIGSERVICE_API AssociateResourceTypesResult(const Aws::AmazonWebServiceResult& result); + AWS_CONFIGSERVICE_API AssociateResourceTypesResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + + inline const ConfigurationRecorder& GetConfigurationRecorder() const{ return m_configurationRecorder; } + inline void SetConfigurationRecorder(const ConfigurationRecorder& value) { m_configurationRecorder = value; } + inline void SetConfigurationRecorder(ConfigurationRecorder&& value) { m_configurationRecorder = std::move(value); } + inline AssociateResourceTypesResult& WithConfigurationRecorder(const ConfigurationRecorder& value) { SetConfigurationRecorder(value); return *this;} + inline AssociateResourceTypesResult& WithConfigurationRecorder(ConfigurationRecorder&& value) { SetConfigurationRecorder(std::move(value)); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline AssociateResourceTypesResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline AssociateResourceTypesResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline AssociateResourceTypesResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + ConfigurationRecorder m_configurationRecorder; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigRuleEvaluationStatus.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigRuleEvaluationStatus.h index 18a1cb0e518..9e24812e0cd 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigRuleEvaluationStatus.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigRuleEvaluationStatus.h @@ -28,7 +28,7 @@ namespace Model *

Status information for your Config Managed rules and Config Custom Policy * rules. The status includes information such as the last time the rule ran, the * last time it failed, and the related error for the last failure.

This - * action does not return status information about Config Custom Lambda + * operation does not return status information about Config Custom Lambda * rules.

See Also:

AWS * API Reference

diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationAggregator.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationAggregator.h index e374f6a8d99..4e60fbc05fc 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationAggregator.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationAggregator.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -134,6 +135,18 @@ namespace Model inline ConfigurationAggregator& WithCreatedBy(Aws::String&& value) { SetCreatedBy(std::move(value)); return *this;} inline ConfigurationAggregator& WithCreatedBy(const char* value) { SetCreatedBy(value); return *this;} ///@} + + ///@{ + /** + *

An object to filter the data you specify for an aggregator.

+ */ + inline const AggregatorFilters& GetAggregatorFilters() const{ return m_aggregatorFilters; } + inline bool AggregatorFiltersHasBeenSet() const { return m_aggregatorFiltersHasBeenSet; } + inline void SetAggregatorFilters(const AggregatorFilters& value) { m_aggregatorFiltersHasBeenSet = true; m_aggregatorFilters = value; } + inline void SetAggregatorFilters(AggregatorFilters&& value) { m_aggregatorFiltersHasBeenSet = true; m_aggregatorFilters = std::move(value); } + inline ConfigurationAggregator& WithAggregatorFilters(const AggregatorFilters& value) { SetAggregatorFilters(value); return *this;} + inline ConfigurationAggregator& WithAggregatorFilters(AggregatorFilters&& value) { SetAggregatorFilters(std::move(value)); return *this;} + ///@} private: Aws::String m_configurationAggregatorName; @@ -156,6 +169,9 @@ namespace Model Aws::String m_createdBy; bool m_createdByHasBeenSet = false; + + AggregatorFilters m_aggregatorFilters; + bool m_aggregatorFiltersHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorder.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorder.h index ee8207e5568..148cd333318 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorder.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorder.h @@ -8,6 +8,7 @@ #include #include #include +#include #include namespace Aws @@ -26,10 +27,10 @@ namespace Model { /** - *

Records configuration changes to your specified resource types. For more + *

Records configuration changes to the resource types in scope.

For more * information about the configuration recorder, see - * Managing the Configuration Recorder in the Config Developer + * Working with the Configuration Recorder in the Config Developer * Guide.

See Also:

AWS * API Reference

@@ -45,11 +46,30 @@ namespace Model ///@{ /** - *

The name of the configuration recorder. Config automatically assigns the name - * of "default" when creating the configuration recorder.

You cannot - * change the name of the configuration recorder after it has been created. To - * change the configuration recorder name, you must delete it and create a new - * configuration recorder with a new name.

+ *

The Amazon Resource Name (ARN) of the specified configuration recorder.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } + inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } + inline ConfigurationRecorder& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline ConfigurationRecorder& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline ConfigurationRecorder& WithArn(const char* value) { SetArn(value); return *this;} + ///@} + + ///@{ + /** + *

The name of the configuration recorder.

For customer managed + * configuration recorders, Config automatically assigns the name of "default" when + * creating a configuration recorder if you do not specify a name at creation + * time.

For service-linked configuration recorders, Config automatically + * assigns a name that has the prefix "AWS" to a new service-linked + * configuration recorder.

Changing the name of a configuration + * recorder

To change the name of the customer managed configuration + * recorder, you must delete it and create a new customer managed configuration + * recorder with a new name.

You cannot change the name of a service-linked + * configuration recorder.

*/ inline const Aws::String& GetName() const{ return m_name; } inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } @@ -63,23 +83,35 @@ namespace Model ///@{ /** - *

Amazon Resource Name (ARN) of the IAM role assumed by Config and used by the - * configuration recorder.

While the API model does not require this - * field, the server will reject a request without a defined roleARN - * for the configuration recorder.

Pre-existing Config - * role

If you have used an Amazon Web Services service that uses - * Config, such as Security Hub or Control Tower, and an Config role has already + *

The Amazon Resource Name (ARN) of the IAM role assumed by Config and used by + * the specified configuration recorder.

The server will reject a + * request without a defined roleARN for the configuration + * recorder

While the API model does not require this field, the server + * will reject a request without a defined roleARN for the + * configuration recorder.

Policies and compliance results

+ * IAM + * policies and other + * policies managed in Organizations can impact whether Config has permissions + * to record configuration changes for your resources. Additionally, rules directly + * evaluate the configuration of a resource and rules don't take into account these + * policies when running evaluations. Make sure that the policies in effect align + * with how you intend to use Config.

Keep Minimum Permisions When + * Reusing an IAM role

If you use an Amazon Web Services service that + * uses Config, such as Security Hub or Control Tower, and an IAM role has already * been created, make sure that the IAM role that you use when setting up Config - * keeps the same minimum permissions as the already created Config role. You must - * do this so that the other Amazon Web Services service continues to run as + * keeps the same minimum permissions as the pre-existing IAM role. You must do + * this to ensure that the other Amazon Web Services service continues to run as * expected.

For example, if Control Tower has an IAM role that allows - * Config to read Amazon Simple Storage Service (Amazon S3) objects, make sure that - * the same permissions are granted within the IAM role you use when setting up - * Config. Otherwise, it may interfere with how Control Tower operates. For more - * information about IAM roles for Config, see - * Identity and Access Management for Config in the Config Developer - * Guide.

+ * Config to read S3 objects, make sure that the same permissions are granted to + * the IAM role you use when setting up Config. Otherwise, it may interfere with + * how Control Tower operates.

The service-linked IAM role for Config + * must be used for service-linked configuration recorders

For + * service-linked configuration recorders, you must use the service-linked IAM role + * for Config: AWSServiceRoleForConfig.

+ * */ inline const Aws::String& GetRoleARN() const{ return m_roleARN; } inline bool RoleARNHasBeenSet() const { return m_roleARNHasBeenSet; } @@ -93,20 +125,22 @@ namespace Model ///@{ /** - *

Specifies which resource types Config records for configuration changes.

- *

High Number of Config Evaluations

You may notice - * increased activity in your account during your initial month recording with - * Config when compared to subsequent months. During the initial bootstrapping - * process, Config runs evaluations on all the resources in your account that you - * have selected for Config to record.

If you are running ephemeral - * workloads, you may see increased activity from Config as it records + *

Specifies which resource types are in scope for the configuration recorder to + * record.

High Number of Config Evaluations

You + * might notice increased activity in your account during your initial month + * recording with Config when compared to subsequent months. During the initial + * bootstrapping process, Config runs evaluations on all the resources in your + * account that you have selected for Config to record.

If you are running + * ephemeral workloads, you may see increased activity from Config as it records * configuration changes associated with creating and deleting these temporary * resources. An ephemeral workload is a temporary use of computing * resources that are loaded and run when needed. Examples include Amazon Elastic - * Compute Cloud (Amazon EC2) Spot Instances, Amazon EMR jobs, and Auto Scaling. If - * you want to avoid the increased activity from running ephemeral workloads, you - * can run these types of workloads in a separate account with Config turned off to - * avoid increased configuration recording and rule evaluations.

+ * Compute Cloud (Amazon EC2) Spot Instances, Amazon EMR jobs, and Auto + * Scaling.

If you want to avoid the increased activity from running + * ephemeral workloads, you can set up the configuration recorder to exclude these + * resource types from being recorded, or run these types of workloads in a + * separate account with Config turned off to avoid increased configuration + * recording and rule evaluations.

*/ inline const RecordingGroup& GetRecordingGroup() const{ return m_recordingGroup; } inline bool RecordingGroupHasBeenSet() const { return m_recordingGroupHasBeenSet; } @@ -118,17 +152,18 @@ namespace Model ///@{ /** - *

Specifies the default recording frequency that Config uses to record - * configuration changes. Config supports Continuous recording and Daily - * recording.

  • Continuous recording allows you to record - * configuration changes continuously whenever a change occurs.

  • - *

    Daily recording allows you to receive a configuration item (CI) representing - * the most recent state of your resources over the last 24-hour period, only if - * it’s different from the previous CI recorded.

- *

Firewall Manager depends on continuous recording to monitor your resources. - * If you are using Firewall Manager, it is recommended that you set the recording - * frequency to Continuous.

You can also override the recording - * frequency for specific resource types.

+ *

Specifies the default recording frequency for the configuration recorder. + * Config supports Continuous recording and Daily recording.

    + *
  • Continuous recording allows you to record configuration changes + * continuously whenever a change occurs.

  • Daily recording allows + * you to receive a configuration item (CI) representing the most recent state of + * your resources over the last 24-hour period, only if it’s different from the + * previous CI recorded.

Some resource types require + * continuous recording

Firewall Manager depends on continuous + * recording to monitor your resources. If you are using Firewall Manager, it is + * recommended that you set the recording frequency to Continuous.

+ *

You can also override the recording frequency for specific resource + * types.

*/ inline const RecordingMode& GetRecordingMode() const{ return m_recordingMode; } inline bool RecordingModeHasBeenSet() const { return m_recordingModeHasBeenSet; } @@ -137,8 +172,42 @@ namespace Model inline ConfigurationRecorder& WithRecordingMode(const RecordingMode& value) { SetRecordingMode(value); return *this;} inline ConfigurationRecorder& WithRecordingMode(RecordingMode&& value) { SetRecordingMode(std::move(value)); return *this;} ///@} + + ///@{ + /** + *

Specifies whether the ConfigurationItems + * in scope for the specified configuration recorder are recorded for free + * (INTERNAL) or if it impacts the costs to your bill + * (PAID).

+ */ + inline const RecordingScope& GetRecordingScope() const{ return m_recordingScope; } + inline bool RecordingScopeHasBeenSet() const { return m_recordingScopeHasBeenSet; } + inline void SetRecordingScope(const RecordingScope& value) { m_recordingScopeHasBeenSet = true; m_recordingScope = value; } + inline void SetRecordingScope(RecordingScope&& value) { m_recordingScopeHasBeenSet = true; m_recordingScope = std::move(value); } + inline ConfigurationRecorder& WithRecordingScope(const RecordingScope& value) { SetRecordingScope(value); return *this;} + inline ConfigurationRecorder& WithRecordingScope(RecordingScope&& value) { SetRecordingScope(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

For service-linked configuration recorders, specifies the linked Amazon Web + * Services service for the configuration recorder.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline ConfigurationRecorder& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline ConfigurationRecorder& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline ConfigurationRecorder& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} private: + Aws::String m_arn; + bool m_arnHasBeenSet = false; + Aws::String m_name; bool m_nameHasBeenSet = false; @@ -150,6 +219,12 @@ namespace Model RecordingMode m_recordingMode; bool m_recordingModeHasBeenSet = false; + + RecordingScope m_recordingScope; + bool m_recordingScopeHasBeenSet = false; + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderFilter.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderFilter.h new file mode 100644 index 00000000000..8a5853db333 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderFilter.h @@ -0,0 +1,88 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + + /** + *

Filters configuration recorders by recording scope.

See Also:

+ * AWS + * API Reference

+ */ + class ConfigurationRecorderFilter + { + public: + AWS_CONFIGSERVICE_API ConfigurationRecorderFilter(); + AWS_CONFIGSERVICE_API ConfigurationRecorderFilter(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API ConfigurationRecorderFilter& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + /** + *

The name of the type of filter. Currently, only recordingScope + * is supported.

+ */ + inline const ConfigurationRecorderFilterName& GetFilterName() const{ return m_filterName; } + inline bool FilterNameHasBeenSet() const { return m_filterNameHasBeenSet; } + inline void SetFilterName(const ConfigurationRecorderFilterName& value) { m_filterNameHasBeenSet = true; m_filterName = value; } + inline void SetFilterName(ConfigurationRecorderFilterName&& value) { m_filterNameHasBeenSet = true; m_filterName = std::move(value); } + inline ConfigurationRecorderFilter& WithFilterName(const ConfigurationRecorderFilterName& value) { SetFilterName(value); return *this;} + inline ConfigurationRecorderFilter& WithFilterName(ConfigurationRecorderFilterName&& value) { SetFilterName(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

The value of the filter. For recordingScope, valid values + * include: INTERNAL and PAID.

+ * INTERNAL indicates that the ConfigurationItems + * in scope for the configuration recorder are recorded for free.

+ * PAID indicates that the ConfigurationItems + * in scope for the configuration recorder impact the costs to your bill.

+ */ + inline const Aws::Vector& GetFilterValue() const{ return m_filterValue; } + inline bool FilterValueHasBeenSet() const { return m_filterValueHasBeenSet; } + inline void SetFilterValue(const Aws::Vector& value) { m_filterValueHasBeenSet = true; m_filterValue = value; } + inline void SetFilterValue(Aws::Vector&& value) { m_filterValueHasBeenSet = true; m_filterValue = std::move(value); } + inline ConfigurationRecorderFilter& WithFilterValue(const Aws::Vector& value) { SetFilterValue(value); return *this;} + inline ConfigurationRecorderFilter& WithFilterValue(Aws::Vector&& value) { SetFilterValue(std::move(value)); return *this;} + inline ConfigurationRecorderFilter& AddFilterValue(const Aws::String& value) { m_filterValueHasBeenSet = true; m_filterValue.push_back(value); return *this; } + inline ConfigurationRecorderFilter& AddFilterValue(Aws::String&& value) { m_filterValueHasBeenSet = true; m_filterValue.push_back(std::move(value)); return *this; } + inline ConfigurationRecorderFilter& AddFilterValue(const char* value) { m_filterValueHasBeenSet = true; m_filterValue.push_back(value); return *this; } + ///@} + private: + + ConfigurationRecorderFilterName m_filterName; + bool m_filterNameHasBeenSet = false; + + Aws::Vector m_filterValue; + bool m_filterValueHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderFilterName.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderFilterName.h new file mode 100644 index 00000000000..58bc7d0d7ff --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderFilterName.h @@ -0,0 +1,30 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + enum class ConfigurationRecorderFilterName + { + NOT_SET, + recordingScope + }; + +namespace ConfigurationRecorderFilterNameMapper +{ +AWS_CONFIGSERVICE_API ConfigurationRecorderFilterName GetConfigurationRecorderFilterNameForName(const Aws::String& name); + +AWS_CONFIGSERVICE_API Aws::String GetNameForConfigurationRecorderFilterName(ConfigurationRecorderFilterName value); +} // namespace ConfigurationRecorderFilterNameMapper +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderStatus.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderStatus.h index 352dfd1528d..d76640021be 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderStatus.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderStatus.h @@ -26,10 +26,9 @@ namespace Model { /** - *

The current status of the configuration recorder.

For a - * detailed status of recording events over time, add your Config events to - * CloudWatch metrics and use CloudWatch metrics.

See Also:

- * The current status of the configuration recorder.

For a detailed + * status of recording events over time, add your Config events to CloudWatch + * metrics and use CloudWatch metrics.

See Also:

AWS * API Reference

*/ @@ -42,6 +41,20 @@ namespace Model AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + ///@{ + /** + *

The Amazon Resource Name (ARN) of the configuration recorder.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } + inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } + inline ConfigurationRecorderStatus& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline ConfigurationRecorderStatus& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline ConfigurationRecorderStatus& WithArn(const char* value) { SetArn(value); return *this;} + ///@} + ///@{ /** *

The name of the configuration recorder.

@@ -142,8 +155,26 @@ namespace Model inline ConfigurationRecorderStatus& WithLastStatusChangeTime(const Aws::Utils::DateTime& value) { SetLastStatusChangeTime(value); return *this;} inline ConfigurationRecorderStatus& WithLastStatusChangeTime(Aws::Utils::DateTime&& value) { SetLastStatusChangeTime(std::move(value)); return *this;} ///@} + + ///@{ + /** + *

For service-linked configuration recorders, the service principal of the + * linked Amazon Web Services service.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline ConfigurationRecorderStatus& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline ConfigurationRecorderStatus& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline ConfigurationRecorderStatus& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} private: + Aws::String m_arn; + bool m_arnHasBeenSet = false; + Aws::String m_name; bool m_nameHasBeenSet = false; @@ -167,6 +198,9 @@ namespace Model Aws::Utils::DateTime m_lastStatusChangeTime; bool m_lastStatusChangeTimeHasBeenSet = false; + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderSummary.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderSummary.h new file mode 100644 index 00000000000..76e14324146 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ConfigurationRecorderSummary.h @@ -0,0 +1,118 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + + /** + *

A summary of a configuration recorder, including the arn, + * name, servicePrincipal, and + * recordingScope.

See Also:

AWS + * API Reference

+ */ + class ConfigurationRecorderSummary + { + public: + AWS_CONFIGSERVICE_API ConfigurationRecorderSummary(); + AWS_CONFIGSERVICE_API ConfigurationRecorderSummary(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API ConfigurationRecorderSummary& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_CONFIGSERVICE_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the configuration recorder.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } + inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } + inline ConfigurationRecorderSummary& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline ConfigurationRecorderSummary& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline ConfigurationRecorderSummary& WithArn(const char* value) { SetArn(value); return *this;} + ///@} + + ///@{ + /** + *

The name of the configuration recorder.

+ */ + inline const Aws::String& GetName() const{ return m_name; } + inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } + inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } + inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } + inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } + inline ConfigurationRecorderSummary& WithName(const Aws::String& value) { SetName(value); return *this;} + inline ConfigurationRecorderSummary& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} + inline ConfigurationRecorderSummary& WithName(const char* value) { SetName(value); return *this;} + ///@} + + ///@{ + /** + *

For service-linked configuration recorders, indicates which Amazon Web + * Services service the configuration recorder is linked to.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline ConfigurationRecorderSummary& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline ConfigurationRecorderSummary& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline ConfigurationRecorderSummary& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} + + ///@{ + /** + *

Indicates whether the ConfigurationItems + * in scope for the configuration recorder are recorded for free + * (INTERNAL) or if you are charged a service fee for recording + * (PAID).

+ */ + inline const RecordingScope& GetRecordingScope() const{ return m_recordingScope; } + inline bool RecordingScopeHasBeenSet() const { return m_recordingScopeHasBeenSet; } + inline void SetRecordingScope(const RecordingScope& value) { m_recordingScopeHasBeenSet = true; m_recordingScope = value; } + inline void SetRecordingScope(RecordingScope&& value) { m_recordingScopeHasBeenSet = true; m_recordingScope = std::move(value); } + inline ConfigurationRecorderSummary& WithRecordingScope(const RecordingScope& value) { SetRecordingScope(value); return *this;} + inline ConfigurationRecorderSummary& WithRecordingScope(RecordingScope&& value) { SetRecordingScope(std::move(value)); return *this;} + ///@} + private: + + Aws::String m_arn; + bool m_arnHasBeenSet = false; + + Aws::String m_name; + bool m_nameHasBeenSet = false; + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; + + RecordingScope m_recordingScope; + bool m_recordingScopeHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteConfigurationRecorderRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteConfigurationRecorderRequest.h index c0fd98d77d2..a77115dd36e 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteConfigurationRecorderRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteConfigurationRecorderRequest.h @@ -18,7 +18,7 @@ namespace Model /** *

The request object for the DeleteConfigurationRecorder - * action.

See Also:

See Also:

AWS * API Reference

*/ @@ -40,9 +40,11 @@ namespace Model ///@{ /** - *

The name of the configuration recorder to be deleted. You can retrieve the - * name of your configuration recorder by using the - * DescribeConfigurationRecorders action.

+ *

The name of the customer managed configuration recorder that you want to + * delete. You can retrieve the name of your configuration recorders by using the + * DescribeConfigurationRecorders + * operation.

*/ inline const Aws::String& GetConfigurationRecorderName() const{ return m_configurationRecorderName; } inline bool ConfigurationRecorderNameHasBeenSet() const { return m_configurationRecorderNameHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteDeliveryChannelRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteDeliveryChannelRequest.h index 9e602b2b9ee..09c42d6fbda 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteDeliveryChannelRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteDeliveryChannelRequest.h @@ -40,7 +40,7 @@ namespace Model ///@{ /** - *

The name of the delivery channel to delete.

+ *

The name of the delivery channel that you want to delete.

*/ inline const Aws::String& GetDeliveryChannelName() const{ return m_deliveryChannelName; } inline bool DeliveryChannelNameHasBeenSet() const { return m_deliveryChannelNameHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteServiceLinkedConfigurationRecorderRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteServiceLinkedConfigurationRecorderRequest.h new file mode 100644 index 00000000000..dbd580e4b8d --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteServiceLinkedConfigurationRecorderRequest.h @@ -0,0 +1,59 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + + /** + */ + class DeleteServiceLinkedConfigurationRecorderRequest : public ConfigServiceRequest + { + public: + AWS_CONFIGSERVICE_API DeleteServiceLinkedConfigurationRecorderRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "DeleteServiceLinkedConfigurationRecorder"; } + + AWS_CONFIGSERVICE_API Aws::String SerializePayload() const override; + + AWS_CONFIGSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + ///@{ + /** + *

The service principal of the Amazon Web Services service for the + * service-linked configuration recorder that you want to delete.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline DeleteServiceLinkedConfigurationRecorderRequest& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline DeleteServiceLinkedConfigurationRecorderRequest& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline DeleteServiceLinkedConfigurationRecorderRequest& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} + private: + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteServiceLinkedConfigurationRecorderResult.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteServiceLinkedConfigurationRecorderResult.h new file mode 100644 index 00000000000..f1ce0b7e39e --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DeleteServiceLinkedConfigurationRecorderResult.h @@ -0,0 +1,82 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + class DeleteServiceLinkedConfigurationRecorderResult + { + public: + AWS_CONFIGSERVICE_API DeleteServiceLinkedConfigurationRecorderResult(); + AWS_CONFIGSERVICE_API DeleteServiceLinkedConfigurationRecorderResult(const Aws::AmazonWebServiceResult& result); + AWS_CONFIGSERVICE_API DeleteServiceLinkedConfigurationRecorderResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the specified configuration recorder.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline void SetArn(const Aws::String& value) { m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arn.assign(value); } + inline DeleteServiceLinkedConfigurationRecorderResult& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline DeleteServiceLinkedConfigurationRecorderResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline DeleteServiceLinkedConfigurationRecorderResult& WithArn(const char* value) { SetArn(value); return *this;} + ///@} + + ///@{ + /** + *

The name of the specified configuration recorder.

+ */ + inline const Aws::String& GetName() const{ return m_name; } + inline void SetName(const Aws::String& value) { m_name = value; } + inline void SetName(Aws::String&& value) { m_name = std::move(value); } + inline void SetName(const char* value) { m_name.assign(value); } + inline DeleteServiceLinkedConfigurationRecorderResult& WithName(const Aws::String& value) { SetName(value); return *this;} + inline DeleteServiceLinkedConfigurationRecorderResult& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} + inline DeleteServiceLinkedConfigurationRecorderResult& WithName(const char* value) { SetName(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline DeleteServiceLinkedConfigurationRecorderResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline DeleteServiceLinkedConfigurationRecorderResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline DeleteServiceLinkedConfigurationRecorderResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Aws::String m_arn; + + Aws::String m_name; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeComplianceByResourceRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeComplianceByResourceRequest.h index e0945d89a28..e6053150386 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeComplianceByResourceRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeComplianceByResourceRequest.h @@ -42,8 +42,8 @@ namespace Model ///@{ /** *

The types of Amazon Web Services resources for which you want compliance - * information (for example, AWS::EC2::Instance). For this action, you - * can specify that the resource type is an Amazon Web Services account by + * information (for example, AWS::EC2::Instance). For this operation, + * you can specify that the resource type is an Amazon Web Services account by * specifying AWS::::Account.

*/ inline const Aws::String& GetResourceType() const{ return m_resourceType; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecorderStatusRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecorderStatusRequest.h index 2d822434192..e6d461ff29c 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecorderStatusRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecorderStatusRequest.h @@ -41,9 +41,10 @@ namespace Model ///@{ /** - *

The name(s) of the configuration recorder. If the name is not specified, the - * action returns the current status of all the configuration recorders associated - * with the account.

+ *

The name of the configuration recorder. If the name is not specified, the + * opertation returns the status for the customer managed configuration recorder + * configured for the account, if applicable.

When making a request + * to this operation, you can only specify one configuration recorder.

*/ inline const Aws::Vector& GetConfigurationRecorderNames() const{ return m_configurationRecorderNames; } inline bool ConfigurationRecorderNamesHasBeenSet() const { return m_configurationRecorderNamesHasBeenSet; } @@ -55,10 +56,47 @@ namespace Model inline DescribeConfigurationRecorderStatusRequest& AddConfigurationRecorderNames(Aws::String&& value) { m_configurationRecorderNamesHasBeenSet = true; m_configurationRecorderNames.push_back(std::move(value)); return *this; } inline DescribeConfigurationRecorderStatusRequest& AddConfigurationRecorderNames(const char* value) { m_configurationRecorderNamesHasBeenSet = true; m_configurationRecorderNames.push_back(value); return *this; } ///@} + + ///@{ + /** + *

For service-linked configuration recorders, you can use the service principal + * of the linked Amazon Web Services service to specify the configuration + * recorder.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline DescribeConfigurationRecorderStatusRequest& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline DescribeConfigurationRecorderStatusRequest& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline DescribeConfigurationRecorderStatusRequest& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the configuration recorder that you want to + * specify.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } + inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } + inline DescribeConfigurationRecorderStatusRequest& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline DescribeConfigurationRecorderStatusRequest& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline DescribeConfigurationRecorderStatusRequest& WithArn(const char* value) { SetArn(value); return *this;} + ///@} private: Aws::Vector m_configurationRecorderNames; bool m_configurationRecorderNamesHasBeenSet = false; + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; + + Aws::String m_arn; + bool m_arnHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecordersRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecordersRequest.h index 763cc439e08..cac8282731d 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecordersRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeConfigurationRecordersRequest.h @@ -41,7 +41,7 @@ namespace Model ///@{ /** - *

A list of configuration recorder names.

+ *

A list of names of the configuration recorders that you want to specify.

*/ inline const Aws::Vector& GetConfigurationRecorderNames() const{ return m_configurationRecorderNames; } inline bool ConfigurationRecorderNamesHasBeenSet() const { return m_configurationRecorderNamesHasBeenSet; } @@ -53,10 +53,47 @@ namespace Model inline DescribeConfigurationRecordersRequest& AddConfigurationRecorderNames(Aws::String&& value) { m_configurationRecorderNamesHasBeenSet = true; m_configurationRecorderNames.push_back(std::move(value)); return *this; } inline DescribeConfigurationRecordersRequest& AddConfigurationRecorderNames(const char* value) { m_configurationRecorderNamesHasBeenSet = true; m_configurationRecorderNames.push_back(value); return *this; } ///@} + + ///@{ + /** + *

For service-linked configuration recorders, you can use the service principal + * of the linked Amazon Web Services service to specify the configuration + * recorder.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline DescribeConfigurationRecordersRequest& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline DescribeConfigurationRecordersRequest& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline DescribeConfigurationRecordersRequest& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the configuration recorder that you want to + * specify.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } + inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } + inline DescribeConfigurationRecordersRequest& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline DescribeConfigurationRecordersRequest& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline DescribeConfigurationRecordersRequest& WithArn(const char* value) { SetArn(value); return *this;} + ///@} private: Aws::Vector m_configurationRecorderNames; bool m_configurationRecorderNamesHasBeenSet = false; + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; + + Aws::String m_arn; + bool m_arnHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeRemediationExecutionStatusRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeRemediationExecutionStatusRequest.h index e57bd9edc8b..31b4fa4608e 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeRemediationExecutionStatusRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DescribeRemediationExecutionStatusRequest.h @@ -38,7 +38,7 @@ namespace Model ///@{ /** - *

A list of Config rule names.

+ *

The name of the Config rule.

*/ inline const Aws::String& GetConfigRuleName() const{ return m_configRuleName; } inline bool ConfigRuleNameHasBeenSet() const { return m_configRuleNameHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DisassociateResourceTypesRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DisassociateResourceTypesRequest.h new file mode 100644 index 00000000000..13202b1784f --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DisassociateResourceTypesRequest.h @@ -0,0 +1,78 @@ +/** + * 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 ConfigService +{ +namespace Model +{ + + /** + */ + class DisassociateResourceTypesRequest : public ConfigServiceRequest + { + public: + AWS_CONFIGSERVICE_API DisassociateResourceTypesRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "DisassociateResourceTypes"; } + + AWS_CONFIGSERVICE_API Aws::String SerializePayload() const override; + + AWS_CONFIGSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the specified configuration recorder.

+ */ + inline const Aws::String& GetConfigurationRecorderArn() const{ return m_configurationRecorderArn; } + inline bool ConfigurationRecorderArnHasBeenSet() const { return m_configurationRecorderArnHasBeenSet; } + inline void SetConfigurationRecorderArn(const Aws::String& value) { m_configurationRecorderArnHasBeenSet = true; m_configurationRecorderArn = value; } + inline void SetConfigurationRecorderArn(Aws::String&& value) { m_configurationRecorderArnHasBeenSet = true; m_configurationRecorderArn = std::move(value); } + inline void SetConfigurationRecorderArn(const char* value) { m_configurationRecorderArnHasBeenSet = true; m_configurationRecorderArn.assign(value); } + inline DisassociateResourceTypesRequest& WithConfigurationRecorderArn(const Aws::String& value) { SetConfigurationRecorderArn(value); return *this;} + inline DisassociateResourceTypesRequest& WithConfigurationRecorderArn(Aws::String&& value) { SetConfigurationRecorderArn(std::move(value)); return *this;} + inline DisassociateResourceTypesRequest& WithConfigurationRecorderArn(const char* value) { SetConfigurationRecorderArn(value); return *this;} + ///@} + + ///@{ + /** + *

The list of resource types you want to remove from the recording group of the + * specified configuration recorder.

+ */ + inline const Aws::Vector& GetResourceTypes() const{ return m_resourceTypes; } + inline bool ResourceTypesHasBeenSet() const { return m_resourceTypesHasBeenSet; } + inline void SetResourceTypes(const Aws::Vector& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = value; } + inline void SetResourceTypes(Aws::Vector&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = std::move(value); } + inline DisassociateResourceTypesRequest& WithResourceTypes(const Aws::Vector& value) { SetResourceTypes(value); return *this;} + inline DisassociateResourceTypesRequest& WithResourceTypes(Aws::Vector&& value) { SetResourceTypes(std::move(value)); return *this;} + inline DisassociateResourceTypesRequest& AddResourceTypes(const ResourceType& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } + inline DisassociateResourceTypesRequest& AddResourceTypes(ResourceType&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(std::move(value)); return *this; } + ///@} + private: + + Aws::String m_configurationRecorderArn; + bool m_configurationRecorderArnHasBeenSet = false; + + Aws::Vector m_resourceTypes; + bool m_resourceTypesHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/DisassociateResourceTypesResult.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DisassociateResourceTypesResult.h new file mode 100644 index 00000000000..f6290a84e04 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/DisassociateResourceTypesResult.h @@ -0,0 +1,64 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + class DisassociateResourceTypesResult + { + public: + AWS_CONFIGSERVICE_API DisassociateResourceTypesResult(); + AWS_CONFIGSERVICE_API DisassociateResourceTypesResult(const Aws::AmazonWebServiceResult& result); + AWS_CONFIGSERVICE_API DisassociateResourceTypesResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + + inline const ConfigurationRecorder& GetConfigurationRecorder() const{ return m_configurationRecorder; } + inline void SetConfigurationRecorder(const ConfigurationRecorder& value) { m_configurationRecorder = value; } + inline void SetConfigurationRecorder(ConfigurationRecorder&& value) { m_configurationRecorder = std::move(value); } + inline DisassociateResourceTypesResult& WithConfigurationRecorder(const ConfigurationRecorder& value) { SetConfigurationRecorder(value); return *this;} + inline DisassociateResourceTypesResult& WithConfigurationRecorder(ConfigurationRecorder&& value) { SetConfigurationRecorder(std::move(value)); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline DisassociateResourceTypesResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline DisassociateResourceTypesResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline DisassociateResourceTypesResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + ConfigurationRecorder m_configurationRecorder; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ExclusionByResourceTypes.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ExclusionByResourceTypes.h index fbd322e2c5c..5e49cc87755 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ExclusionByResourceTypes.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ExclusionByResourceTypes.h @@ -44,12 +44,10 @@ namespace Model * policies will be recorded in the Region where you set up the configuration * recorder if that is a Region where Config was available before February 2022. * You cannot be record the global IAM resouce types in Regions supported by Config - * after February 2022. This list where you cannot record the global IAM resource - * types includes the following Regions:

  • Asia Pacific - * (Hyderabad)

  • Asia Pacific (Melbourne)

  • Canada - * West (Calgary)

  • Europe (Spain)

  • Europe - * (Zurich)

  • Israel (Tel Aviv)

  • Middle East - * (UAE)

See Also:

Recording + * Amazon Web Services Resources | Global Resources.

See + * Also:

AWS * API Reference

*/ diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListConfigurationRecordersRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListConfigurationRecordersRequest.h new file mode 100644 index 00000000000..83038f437d6 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListConfigurationRecordersRequest.h @@ -0,0 +1,92 @@ +/** + * 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 ConfigService +{ +namespace Model +{ + + /** + */ + class ListConfigurationRecordersRequest : public ConfigServiceRequest + { + public: + AWS_CONFIGSERVICE_API ListConfigurationRecordersRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "ListConfigurationRecorders"; } + + AWS_CONFIGSERVICE_API Aws::String SerializePayload() const override; + + AWS_CONFIGSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + ///@{ + /** + *

Filters the results based on a list of + * ConfigurationRecorderFilter objects that you specify.

+ */ + inline const Aws::Vector& GetFilters() const{ return m_filters; } + inline bool FiltersHasBeenSet() const { return m_filtersHasBeenSet; } + inline void SetFilters(const Aws::Vector& value) { m_filtersHasBeenSet = true; m_filters = value; } + inline void SetFilters(Aws::Vector&& value) { m_filtersHasBeenSet = true; m_filters = std::move(value); } + inline ListConfigurationRecordersRequest& WithFilters(const Aws::Vector& value) { SetFilters(value); return *this;} + inline ListConfigurationRecordersRequest& WithFilters(Aws::Vector&& value) { SetFilters(std::move(value)); return *this;} + inline ListConfigurationRecordersRequest& AddFilters(const ConfigurationRecorderFilter& value) { m_filtersHasBeenSet = true; m_filters.push_back(value); return *this; } + inline ListConfigurationRecordersRequest& AddFilters(ConfigurationRecorderFilter&& value) { m_filtersHasBeenSet = true; m_filters.push_back(std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

The maximum number of results to include in the response.

+ */ + inline int GetMaxResults() const{ return m_maxResults; } + inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } + inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } + inline ListConfigurationRecordersRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;} + ///@} + + ///@{ + /** + *

The NextToken string returned on a previous page that you use to + * get the next page of results in a paginated response.

+ */ + inline const Aws::String& GetNextToken() const{ return m_nextToken; } + inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; } + inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; } + inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); } + inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); } + inline ListConfigurationRecordersRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} + inline ListConfigurationRecordersRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} + inline ListConfigurationRecordersRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;} + ///@} + private: + + Aws::Vector m_filters; + bool m_filtersHasBeenSet = false; + + int m_maxResults; + bool m_maxResultsHasBeenSet = false; + + Aws::String m_nextToken; + bool m_nextTokenHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListConfigurationRecordersResult.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListConfigurationRecordersResult.h new file mode 100644 index 00000000000..be312cb4fed --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListConfigurationRecordersResult.h @@ -0,0 +1,86 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + class ListConfigurationRecordersResult + { + public: + AWS_CONFIGSERVICE_API ListConfigurationRecordersResult(); + AWS_CONFIGSERVICE_API ListConfigurationRecordersResult(const Aws::AmazonWebServiceResult& result); + AWS_CONFIGSERVICE_API ListConfigurationRecordersResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

A list of ConfigurationRecorderSummary objects that + * includes.

+ */ + inline const Aws::Vector& GetConfigurationRecorderSummaries() const{ return m_configurationRecorderSummaries; } + inline void SetConfigurationRecorderSummaries(const Aws::Vector& value) { m_configurationRecorderSummaries = value; } + inline void SetConfigurationRecorderSummaries(Aws::Vector&& value) { m_configurationRecorderSummaries = std::move(value); } + inline ListConfigurationRecordersResult& WithConfigurationRecorderSummaries(const Aws::Vector& value) { SetConfigurationRecorderSummaries(value); return *this;} + inline ListConfigurationRecordersResult& WithConfigurationRecorderSummaries(Aws::Vector&& value) { SetConfigurationRecorderSummaries(std::move(value)); return *this;} + inline ListConfigurationRecordersResult& AddConfigurationRecorderSummaries(const ConfigurationRecorderSummary& value) { m_configurationRecorderSummaries.push_back(value); return *this; } + inline ListConfigurationRecordersResult& AddConfigurationRecorderSummaries(ConfigurationRecorderSummary&& value) { m_configurationRecorderSummaries.push_back(std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

The NextToken string returned on a previous page that you use to + * get the next page of results in a paginated response.

+ */ + inline const Aws::String& GetNextToken() const{ return m_nextToken; } + inline void SetNextToken(const Aws::String& value) { m_nextToken = value; } + inline void SetNextToken(Aws::String&& value) { m_nextToken = std::move(value); } + inline void SetNextToken(const char* value) { m_nextToken.assign(value); } + inline ListConfigurationRecordersResult& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} + inline ListConfigurationRecordersResult& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} + inline ListConfigurationRecordersResult& WithNextToken(const char* value) { SetNextToken(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline ListConfigurationRecordersResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline ListConfigurationRecordersResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline ListConfigurationRecordersResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Aws::Vector m_configurationRecorderSummaries; + + Aws::String m_nextToken; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListStoredQueriesResult.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListStoredQueriesResult.h index b46af4b9471..b2689e30276 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListStoredQueriesResult.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListStoredQueriesResult.h @@ -51,7 +51,7 @@ namespace Model /** *

If the previous paginated request didn't return all of the remaining results, * the response object's NextToken parameter value is set to a token. - * To retrieve the next set of results, call this action again and assign that + * To retrieve the next set of results, call this operation again and assign that * token to the request object's NextToken parameter. If there are no * remaining results, the previous response object's NextToken * parameter is set to null.

diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListTagsForResourceRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListTagsForResourceRequest.h index 96f92e53bdf..040a3e5531a 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListTagsForResourceRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/ListTagsForResourceRequest.h @@ -37,9 +37,14 @@ namespace Model ///@{ /** *

The Amazon Resource Name (ARN) that identifies the resource for which to list - * the tags. Currently, the supported resources are ConfigRule, - * ConfigurationAggregator and - * AggregatorAuthorization.

+ * the tags. The following resources are supported:

  • + * ConfigurationRecorder

  • ConfigRule + *

  • OrganizationConfigRule

  • + * ConformancePack

  • + * OrganizationConformancePack

  • + * ConfigurationAggregator

  • + * AggregationAuthorization

  • + * StoredQuery

*/ inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationAggregatorRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationAggregatorRequest.h index 3a2cef4a00f..79df1434ca7 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationAggregatorRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationAggregatorRequest.h @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -91,6 +92,19 @@ namespace Model inline PutConfigurationAggregatorRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } inline PutConfigurationAggregatorRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } ///@} + + ///@{ + /** + *

An object to filter configuration recorders in an aggregator. Either + * ResourceType or ServicePrincipal is required.

+ */ + inline const AggregatorFilters& GetAggregatorFilters() const{ return m_aggregatorFilters; } + inline bool AggregatorFiltersHasBeenSet() const { return m_aggregatorFiltersHasBeenSet; } + inline void SetAggregatorFilters(const AggregatorFilters& value) { m_aggregatorFiltersHasBeenSet = true; m_aggregatorFilters = value; } + inline void SetAggregatorFilters(AggregatorFilters&& value) { m_aggregatorFiltersHasBeenSet = true; m_aggregatorFilters = std::move(value); } + inline PutConfigurationAggregatorRequest& WithAggregatorFilters(const AggregatorFilters& value) { SetAggregatorFilters(value); return *this;} + inline PutConfigurationAggregatorRequest& WithAggregatorFilters(AggregatorFilters&& value) { SetAggregatorFilters(std::move(value)); return *this;} + ///@} private: Aws::String m_configurationAggregatorName; @@ -104,6 +118,9 @@ namespace Model Aws::Vector m_tags; bool m_tagsHasBeenSet = false; + + AggregatorFilters m_aggregatorFilters; + bool m_aggregatorFiltersHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationRecorderRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationRecorderRequest.h index bee330d12ee..5ea0e05bbc8 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationRecorderRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutConfigurationRecorderRequest.h @@ -7,6 +7,8 @@ #include #include #include +#include +#include #include namespace Aws @@ -40,8 +42,8 @@ namespace Model ///@{ /** - *

An object for the configuration recorder to record configuration changes for - * specified resource types.

+ *

An object for the configuration recorder. A configuration recorder records + * configuration changes for the resource types in scope.

*/ inline const ConfigurationRecorder& GetConfigurationRecorder() const{ return m_configurationRecorder; } inline bool ConfigurationRecorderHasBeenSet() const { return m_configurationRecorderHasBeenSet; } @@ -50,10 +52,28 @@ namespace Model inline PutConfigurationRecorderRequest& WithConfigurationRecorder(const ConfigurationRecorder& value) { SetConfigurationRecorder(value); return *this;} inline PutConfigurationRecorderRequest& WithConfigurationRecorder(ConfigurationRecorder&& value) { SetConfigurationRecorder(std::move(value)); return *this;} ///@} + + ///@{ + /** + *

The tags for the customer managed configuration recorder. Each tag consists + * of a key and an optional value, both of which you define.

+ */ + inline const Aws::Vector& GetTags() const{ return m_tags; } + inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } + inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } + inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } + inline PutConfigurationRecorderRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} + inline PutConfigurationRecorderRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} + inline PutConfigurationRecorderRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } + inline PutConfigurationRecorderRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } + ///@} private: ConfigurationRecorder m_configurationRecorder; bool m_configurationRecorderHasBeenSet = false; + + Aws::Vector m_tags; + bool m_tagsHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutDeliveryChannelRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutDeliveryChannelRequest.h index 4bf0d816627..cd4d308a855 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutDeliveryChannelRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutDeliveryChannelRequest.h @@ -40,8 +40,8 @@ namespace Model ///@{ /** - *

The configuration delivery channel object that delivers the configuration - * information to an Amazon S3 bucket and to an Amazon SNS topic.

+ *

An object for the delivery channel. A delivery channel sends notifications + * and updated configuration states.

*/ inline const DeliveryChannel& GetDeliveryChannel() const{ return m_deliveryChannel; } inline bool DeliveryChannelHasBeenSet() const { return m_deliveryChannelHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutServiceLinkedConfigurationRecorderRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutServiceLinkedConfigurationRecorderRequest.h new file mode 100644 index 00000000000..c29cf47754d --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutServiceLinkedConfigurationRecorderRequest.h @@ -0,0 +1,79 @@ +/** + * 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 ConfigService +{ +namespace Model +{ + + /** + */ + class PutServiceLinkedConfigurationRecorderRequest : public ConfigServiceRequest + { + public: + AWS_CONFIGSERVICE_API PutServiceLinkedConfigurationRecorderRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "PutServiceLinkedConfigurationRecorder"; } + + AWS_CONFIGSERVICE_API Aws::String SerializePayload() const override; + + AWS_CONFIGSERVICE_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; + + + ///@{ + /** + *

The service principal of the Amazon Web Services service for the + * service-linked configuration recorder that you want to create.

+ */ + inline const Aws::String& GetServicePrincipal() const{ return m_servicePrincipal; } + inline bool ServicePrincipalHasBeenSet() const { return m_servicePrincipalHasBeenSet; } + inline void SetServicePrincipal(const Aws::String& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = value; } + inline void SetServicePrincipal(Aws::String&& value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal = std::move(value); } + inline void SetServicePrincipal(const char* value) { m_servicePrincipalHasBeenSet = true; m_servicePrincipal.assign(value); } + inline PutServiceLinkedConfigurationRecorderRequest& WithServicePrincipal(const Aws::String& value) { SetServicePrincipal(value); return *this;} + inline PutServiceLinkedConfigurationRecorderRequest& WithServicePrincipal(Aws::String&& value) { SetServicePrincipal(std::move(value)); return *this;} + inline PutServiceLinkedConfigurationRecorderRequest& WithServicePrincipal(const char* value) { SetServicePrincipal(value); return *this;} + ///@} + + ///@{ + /** + *

The tags for a service-linked configuration recorder. Each tag consists of a + * key and an optional value, both of which you define.

+ */ + inline const Aws::Vector& GetTags() const{ return m_tags; } + inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } + inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } + inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } + inline PutServiceLinkedConfigurationRecorderRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} + inline PutServiceLinkedConfigurationRecorderRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} + inline PutServiceLinkedConfigurationRecorderRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } + inline PutServiceLinkedConfigurationRecorderRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } + ///@} + private: + + Aws::String m_servicePrincipal; + bool m_servicePrincipalHasBeenSet = false; + + Aws::Vector m_tags; + bool m_tagsHasBeenSet = false; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutServiceLinkedConfigurationRecorderResult.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutServiceLinkedConfigurationRecorderResult.h new file mode 100644 index 00000000000..911113a83aa --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/PutServiceLinkedConfigurationRecorderResult.h @@ -0,0 +1,84 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ConfigService +{ +namespace Model +{ + class PutServiceLinkedConfigurationRecorderResult + { + public: + AWS_CONFIGSERVICE_API PutServiceLinkedConfigurationRecorderResult(); + AWS_CONFIGSERVICE_API PutServiceLinkedConfigurationRecorderResult(const Aws::AmazonWebServiceResult& result); + AWS_CONFIGSERVICE_API PutServiceLinkedConfigurationRecorderResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

The Amazon Resource Name (ARN) of the specified configuration recorder.

+ */ + inline const Aws::String& GetArn() const{ return m_arn; } + inline void SetArn(const Aws::String& value) { m_arn = value; } + inline void SetArn(Aws::String&& value) { m_arn = std::move(value); } + inline void SetArn(const char* value) { m_arn.assign(value); } + inline PutServiceLinkedConfigurationRecorderResult& WithArn(const Aws::String& value) { SetArn(value); return *this;} + inline PutServiceLinkedConfigurationRecorderResult& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} + inline PutServiceLinkedConfigurationRecorderResult& WithArn(const char* value) { SetArn(value); return *this;} + ///@} + + ///@{ + /** + *

The name of the specified configuration recorder.

For service-linked + * configuration recorders, Config automatically assigns a name that has the prefix + * "AWS" to the new service-linked configuration recorder.

+ */ + inline const Aws::String& GetName() const{ return m_name; } + inline void SetName(const Aws::String& value) { m_name = value; } + inline void SetName(Aws::String&& value) { m_name = std::move(value); } + inline void SetName(const char* value) { m_name.assign(value); } + inline PutServiceLinkedConfigurationRecorderResult& WithName(const Aws::String& value) { SetName(value); return *this;} + inline PutServiceLinkedConfigurationRecorderResult& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} + inline PutServiceLinkedConfigurationRecorderResult& WithName(const char* value) { SetName(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline PutServiceLinkedConfigurationRecorderResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline PutServiceLinkedConfigurationRecorderResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline PutServiceLinkedConfigurationRecorderResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Aws::String m_arn; + + Aws::String m_name; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecorderStatus.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecorderStatus.h index 04acca7e365..cb9dac882a9 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecorderStatus.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecorderStatus.h @@ -18,7 +18,8 @@ namespace Model NOT_SET, Pending, Success, - Failure + Failure, + NotApplicable }; namespace RecorderStatusMapper diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingGroup.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingGroup.h index 7da5d1ad2ce..84612265125 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingGroup.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingGroup.h @@ -94,12 +94,10 @@ namespace Model * IAM users, groups, roles, and customer managed policies. These global IAM * resource types can only be recorded by Config in Regions where Config was * available before February 2022. You cannot be record the global IAM resouce - * types in Regions supported by Config after February 2022. This list where you - * cannot record the global IAM resource types includes the following Regions:

- *
  • Asia Pacific (Hyderabad)

  • Asia Pacific - * (Melbourne)

  • Canada West (Calgary)

  • Europe - * (Spain)

  • Europe (Zurich)

  • Israel (Tel - * Aviv)

  • Middle East (UAE)

+ * types in Regions supported by Config after February 2022. For a list of those + * Regions, see Recording + * Amazon Web Services Resources | Global Resources.

* Aurora global clusters are recorded in all enabled Regions

The * AWS::RDS::GlobalCluster resource type will be recorded in all * supported Config Regions where the configuration recorder is enabled, even if @@ -263,12 +261,9 @@ namespace Model * policies will be recorded in the Region where you set up the configuration * recorder if that is a Region where Config was available before February 2022. * You cannot be record the global IAM resouce types in Regions supported by Config - * after February 2022. This list where you cannot record the global IAM resource - * types includes the following Regions:

  • Asia Pacific - * (Hyderabad)

  • Asia Pacific (Melbourne)

  • Canada - * West (Calgary)

  • Europe (Spain)

  • Europe - * (Zurich)

  • Israel (Tel Aviv)

  • Middle East - * (UAE)

+ * after February 2022. For a list of those Regions, see Recording + * Amazon Web Services Resources | Global Resources.

*/ inline const RecordingStrategy& GetRecordingStrategy() const{ return m_recordingStrategy; } inline bool RecordingStrategyHasBeenSet() const { return m_recordingStrategyHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingMode.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingMode.h index 9fbffd7bbfd..74caf23e2db 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingMode.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingMode.h @@ -52,13 +52,14 @@ namespace Model ///@{ /** *

The default recording frequency that Config uses to record configuration - * changes.

Daily recording is not supported for the following - * resource types:

  • AWS::Config::ResourceCompliance - *

  • AWS::Config::ConformancePackCompliance

    - *
  • AWS::Config::ConfigurationRecorder

- *

For the allSupported (ALL_SUPPORTED_RESOURCE_TYPES) - * recording strategy, these resource types will be set to Continuous - * recording.

+ * changes.

Daily recording cannot be specified for the + * following resource types:

  • + * AWS::Config::ResourceCompliance

  • + * AWS::Config::ConformancePackCompliance

  • + * AWS::Config::ConfigurationRecorder

For the + * allSupported (ALL_SUPPORTED_RESOURCE_TYPES) recording + * strategy, these resource types will be set to Continuous recording.

+ * */ inline const RecordingFrequency& GetRecordingFrequency() const{ return m_recordingFrequency; } inline bool RecordingFrequencyHasBeenSet() const { return m_recordingFrequencyHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingModeOverride.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingModeOverride.h index 495664daeb5..73e26d4020c 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingModeOverride.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingModeOverride.h @@ -58,7 +58,7 @@ namespace Model ///@{ /** *

A comma-separated list that specifies which resource types Config includes in - * the override.

Daily recording is not supported for the + * the override.

Daily recording cannot be specified for the * following resource types:

  • * AWS::Config::ResourceCompliance

  • * AWS::Config::ConformancePackCompliance

  • diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingScope.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingScope.h new file mode 100644 index 00000000000..99bedc18882 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/RecordingScope.h @@ -0,0 +1,31 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + enum class RecordingScope + { + NOT_SET, + INTERNAL, + PAID + }; + +namespace RecordingScopeMapper +{ +AWS_CONFIGSERVICE_API RecordingScope GetRecordingScopeForName(const Aws::String& name); + +AWS_CONFIGSERVICE_API Aws::String GetNameForRecordingScope(RecordingScope value); +} // namespace RecordingScopeMapper +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/StartConfigurationRecorderRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/StartConfigurationRecorderRequest.h index 4a6edd5c8d0..317a9022fe4 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/StartConfigurationRecorderRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/StartConfigurationRecorderRequest.h @@ -17,7 +17,7 @@ namespace Model { /** - *

    The input for the StartConfigurationRecorder action.

    See + *

    The input for the StartConfigurationRecorder operation.

    See * Also:

    AWS * API Reference

    @@ -40,8 +40,8 @@ namespace Model ///@{ /** - *

    The name of the recorder object that records each configuration change made - * to the resources.

    + *

    The name of the customer managed configuration recorder that you want to + * start.

    */ inline const Aws::String& GetConfigurationRecorderName() const{ return m_configurationRecorderName; } inline bool ConfigurationRecorderNameHasBeenSet() const { return m_configurationRecorderNameHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/StopConfigurationRecorderRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/StopConfigurationRecorderRequest.h index ecd6933d90c..1276e0fd6cf 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/StopConfigurationRecorderRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/StopConfigurationRecorderRequest.h @@ -17,7 +17,7 @@ namespace Model { /** - *

    The input for the StopConfigurationRecorder action.

    See + *

    The input for the StopConfigurationRecorder operation.

    See * Also:

    AWS * API Reference

    @@ -40,8 +40,8 @@ namespace Model ///@{ /** - *

    The name of the recorder object that records each configuration change made - * to the resources.

    + *

    The name of the customer managed configuration recorder that you want to + * stop.

    */ inline const Aws::String& GetConfigurationRecorderName() const{ return m_configurationRecorderName; } inline bool ConfigurationRecorderNameHasBeenSet() const { return m_configurationRecorderNameHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/TagResourceRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/TagResourceRequest.h index 7474c93dc6c..8198411435e 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/TagResourceRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/TagResourceRequest.h @@ -39,9 +39,14 @@ namespace Model ///@{ /** *

    The Amazon Resource Name (ARN) that identifies the resource for which to list - * the tags. Currently, the supported resources are ConfigRule, - * ConfigurationAggregator and - * AggregatorAuthorization.

    + * the tags. The following resources are supported:

    • + * ConfigurationRecorder

    • ConfigRule + *

    • OrganizationConfigRule

    • + * ConformancePack

    • + * OrganizationConformancePack

    • + * ConfigurationAggregator

    • + * AggregationAuthorization

    • + * StoredQuery

    */ inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/include/aws/config/model/UntagResourceRequest.h b/generated/src/aws-cpp-sdk-config/include/aws/config/model/UntagResourceRequest.h index e595b225ac1..afa6c5fdb27 100644 --- a/generated/src/aws-cpp-sdk-config/include/aws/config/model/UntagResourceRequest.h +++ b/generated/src/aws-cpp-sdk-config/include/aws/config/model/UntagResourceRequest.h @@ -38,9 +38,14 @@ namespace Model ///@{ /** *

    The Amazon Resource Name (ARN) that identifies the resource for which to list - * the tags. Currently, the supported resources are ConfigRule, - * ConfigurationAggregator and - * AggregatorAuthorization.

    + * the tags. The following resources are supported:

    • + * ConfigurationRecorder

    • ConfigRule + *

    • OrganizationConfigRule

    • + * ConformancePack

    • + * OrganizationConformancePack

    • + * ConfigurationAggregator

    • + * AggregationAuthorization

    • + * StoredQuery

    */ inline const Aws::String& GetResourceArn() const{ return m_resourceArn; } inline bool ResourceArnHasBeenSet() const { return m_resourceArnHasBeenSet; } diff --git a/generated/src/aws-cpp-sdk-config/source/ConfigServiceClient.cpp b/generated/src/aws-cpp-sdk-config/source/ConfigServiceClient.cpp index 2e9d49830cf..7b072cc4e8b 100644 --- a/generated/src/aws-cpp-sdk-config/source/ConfigServiceClient.cpp +++ b/generated/src/aws-cpp-sdk-config/source/ConfigServiceClient.cpp @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -37,6 +38,7 @@ #include #include #include +#include #include #include #include @@ -64,6 +66,7 @@ #include #include #include +#include #include #include #include @@ -84,6 +87,7 @@ #include #include #include +#include #include #include #include @@ -103,6 +107,7 @@ #include #include #include +#include #include #include #include @@ -256,6 +261,32 @@ void ConfigServiceClient::OverrideEndpoint(const Aws::String& endpoint) m_endpointProvider->OverrideEndpoint(endpoint); } +AssociateResourceTypesOutcome ConfigServiceClient::AssociateResourceTypes(const AssociateResourceTypesRequest& request) const +{ + AWS_OPERATION_GUARD(AssociateResourceTypes); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, AssociateResourceTypes, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, AssociateResourceTypes, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, AssociateResourceTypes, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".AssociateResourceTypes", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> AssociateResourceTypesOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, AssociateResourceTypes, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return AssociateResourceTypesOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + BatchGetAggregateResourceConfigOutcome ConfigServiceClient::BatchGetAggregateResourceConfig(const BatchGetAggregateResourceConfigRequest& request) const { AWS_OPERATION_GUARD(BatchGetAggregateResourceConfig); @@ -672,6 +703,32 @@ DeleteRetentionConfigurationOutcome ConfigServiceClient::DeleteRetentionConfigur {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +DeleteServiceLinkedConfigurationRecorderOutcome ConfigServiceClient::DeleteServiceLinkedConfigurationRecorder(const DeleteServiceLinkedConfigurationRecorderRequest& request) const +{ + AWS_OPERATION_GUARD(DeleteServiceLinkedConfigurationRecorder); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, DeleteServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, DeleteServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, DeleteServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".DeleteServiceLinkedConfigurationRecorder", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> DeleteServiceLinkedConfigurationRecorderOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DeleteServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return DeleteServiceLinkedConfigurationRecorderOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + DeleteStoredQueryOutcome ConfigServiceClient::DeleteStoredQuery(const DeleteStoredQueryRequest& request) const { AWS_OPERATION_GUARD(DeleteStoredQuery); @@ -1374,6 +1431,32 @@ DescribeRetentionConfigurationsOutcome ConfigServiceClient::DescribeRetentionCon {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +DisassociateResourceTypesOutcome ConfigServiceClient::DisassociateResourceTypes(const DisassociateResourceTypesRequest& request) const +{ + AWS_OPERATION_GUARD(DisassociateResourceTypes); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, DisassociateResourceTypes, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, DisassociateResourceTypes, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, DisassociateResourceTypes, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".DisassociateResourceTypes", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> DisassociateResourceTypesOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, DisassociateResourceTypes, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return DisassociateResourceTypesOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + GetAggregateComplianceDetailsByConfigRuleOutcome ConfigServiceClient::GetAggregateComplianceDetailsByConfigRule(const GetAggregateComplianceDetailsByConfigRuleRequest& request) const { AWS_OPERATION_GUARD(GetAggregateComplianceDetailsByConfigRule); @@ -1894,6 +1977,32 @@ ListAggregateDiscoveredResourcesOutcome ConfigServiceClient::ListAggregateDiscov {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +ListConfigurationRecordersOutcome ConfigServiceClient::ListConfigurationRecorders(const ListConfigurationRecordersRequest& request) const +{ + AWS_OPERATION_GUARD(ListConfigurationRecorders); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListConfigurationRecorders, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, ListConfigurationRecorders, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, ListConfigurationRecorders, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".ListConfigurationRecorders", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> ListConfigurationRecordersOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListConfigurationRecorders, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return ListConfigurationRecordersOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + ListConformancePackComplianceScoresOutcome ConfigServiceClient::ListConformancePackComplianceScores(const ListConformancePackComplianceScoresRequest& request) const { AWS_OPERATION_GUARD(ListConformancePackComplianceScores); @@ -2388,6 +2497,32 @@ PutRetentionConfigurationOutcome ConfigServiceClient::PutRetentionConfiguration( {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); } +PutServiceLinkedConfigurationRecorderOutcome ConfigServiceClient::PutServiceLinkedConfigurationRecorder(const PutServiceLinkedConfigurationRecorderRequest& request) const +{ + AWS_OPERATION_GUARD(PutServiceLinkedConfigurationRecorder); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, PutServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, PutServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, PutServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".PutServiceLinkedConfigurationRecorder", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> PutServiceLinkedConfigurationRecorderOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, PutServiceLinkedConfigurationRecorder, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + return PutServiceLinkedConfigurationRecorderOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + PutStoredQueryOutcome ConfigServiceClient::PutStoredQuery(const PutStoredQueryRequest& request) const { AWS_OPERATION_GUARD(PutStoredQuery); diff --git a/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp b/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp index 5fdd8cd0511..ee0c9bb3805 100644 --- a/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp +++ b/generated/src/aws-cpp-sdk-config/source/ConfigServiceErrors.cpp @@ -43,6 +43,7 @@ static const int INVALID_RECORDING_GROUP_HASH = HashingUtils::HashString("Invali static const int INVALID_S3_KEY_PREFIX_HASH = HashingUtils::HashString("InvalidS3KeyPrefixException"); static const int TOO_MANY_TAGS_HASH = HashingUtils::HashString("TooManyTagsException"); static const int INVALID_CONFIGURATION_RECORDER_NAME_HASH = HashingUtils::HashString("InvalidConfigurationRecorderNameException"); +static const int CONFLICT_HASH = HashingUtils::HashString("ConflictException"); static const int NO_RUNNING_CONFIGURATION_RECORDER_HASH = HashingUtils::HashString("NoRunningConfigurationRecorderException"); static const int INVALID_ROLE_HASH = HashingUtils::HashString("InvalidRoleException"); static const int LAST_DELIVERY_CHANNEL_DELETE_FAILED_HASH = HashingUtils::HashString("LastDeliveryChannelDeleteFailedException"); @@ -52,6 +53,7 @@ static const int NO_SUCH_ORGANIZATION_CONFORMANCE_PACK_HASH = HashingUtils::Hash static const int NO_SUCH_REMEDIATION_CONFIGURATION_HASH = HashingUtils::HashString("NoSuchRemediationConfigurationException"); static const int MAX_NUMBER_OF_RETENTION_CONFIGURATIONS_EXCEEDED_HASH = HashingUtils::HashString("MaxNumberOfRetentionConfigurationsExceededException"); static const int NO_AVAILABLE_DELIVERY_CHANNEL_HASH = HashingUtils::HashString("NoAvailableDeliveryChannelException"); +static const int UNMODIFIABLE_ENTITY_HASH = HashingUtils::HashString("UnmodifiableEntityException"); static const int MAX_NUMBER_OF_CONFORMANCE_PACKS_EXCEEDED_HASH = HashingUtils::HashString("MaxNumberOfConformancePacksExceededException"); static const int RESOURCE_IN_USE_HASH = HashingUtils::HashString("ResourceInUseException"); static const int INVALID_TIME_RANGE_HASH = HashingUtils::HashString("InvalidTimeRangeException"); @@ -175,6 +177,10 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(ConfigServiceErrors::INVALID_CONFIGURATION_RECORDER_NAME), RetryableType::NOT_RETRYABLE); } + else if (hashCode == CONFLICT_HASH) + { + return AWSError(static_cast(ConfigServiceErrors::CONFLICT), RetryableType::NOT_RETRYABLE); + } else if (hashCode == NO_RUNNING_CONFIGURATION_RECORDER_HASH) { return AWSError(static_cast(ConfigServiceErrors::NO_RUNNING_CONFIGURATION_RECORDER), RetryableType::NOT_RETRYABLE); @@ -211,6 +217,10 @@ AWSError GetErrorForName(const char* errorName) { return AWSError(static_cast(ConfigServiceErrors::NO_AVAILABLE_DELIVERY_CHANNEL), RetryableType::NOT_RETRYABLE); } + else if (hashCode == UNMODIFIABLE_ENTITY_HASH) + { + return AWSError(static_cast(ConfigServiceErrors::UNMODIFIABLE_ENTITY), RetryableType::NOT_RETRYABLE); + } else if (hashCode == MAX_NUMBER_OF_CONFORMANCE_PACKS_EXCEEDED_HASH) { return AWSError(static_cast(ConfigServiceErrors::MAX_NUMBER_OF_CONFORMANCE_PACKS_EXCEEDED), RetryableType::NOT_RETRYABLE); diff --git a/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterResourceType.cpp b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterResourceType.cpp new file mode 100644 index 00000000000..525d4c334fa --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterResourceType.cpp @@ -0,0 +1,81 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + +AggregatorFilterResourceType::AggregatorFilterResourceType() : + m_type(AggregatorFilterType::NOT_SET), + m_typeHasBeenSet(false), + m_valueHasBeenSet(false) +{ +} + +AggregatorFilterResourceType::AggregatorFilterResourceType(JsonView jsonValue) + : AggregatorFilterResourceType() +{ + *this = jsonValue; +} + +AggregatorFilterResourceType& AggregatorFilterResourceType::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("Type")) + { + m_type = AggregatorFilterTypeMapper::GetAggregatorFilterTypeForName(jsonValue.GetString("Type")); + + m_typeHasBeenSet = true; + } + + if(jsonValue.ValueExists("Value")) + { + Aws::Utils::Array valueJsonList = jsonValue.GetArray("Value"); + for(unsigned valueIndex = 0; valueIndex < valueJsonList.GetLength(); ++valueIndex) + { + m_value.push_back(valueJsonList[valueIndex].AsString()); + } + m_valueHasBeenSet = true; + } + + return *this; +} + +JsonValue AggregatorFilterResourceType::Jsonize() const +{ + JsonValue payload; + + if(m_typeHasBeenSet) + { + payload.WithString("Type", AggregatorFilterTypeMapper::GetNameForAggregatorFilterType(m_type)); + } + + if(m_valueHasBeenSet) + { + Aws::Utils::Array valueJsonList(m_value.size()); + for(unsigned valueIndex = 0; valueIndex < valueJsonList.GetLength(); ++valueIndex) + { + valueJsonList[valueIndex].AsString(m_value[valueIndex]); + } + payload.WithArray("Value", std::move(valueJsonList)); + + } + + return payload; +} + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterServicePrincipal.cpp b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterServicePrincipal.cpp new file mode 100644 index 00000000000..b3b2a634d19 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterServicePrincipal.cpp @@ -0,0 +1,81 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + +AggregatorFilterServicePrincipal::AggregatorFilterServicePrincipal() : + m_type(AggregatorFilterType::NOT_SET), + m_typeHasBeenSet(false), + m_valueHasBeenSet(false) +{ +} + +AggregatorFilterServicePrincipal::AggregatorFilterServicePrincipal(JsonView jsonValue) + : AggregatorFilterServicePrincipal() +{ + *this = jsonValue; +} + +AggregatorFilterServicePrincipal& AggregatorFilterServicePrincipal::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("Type")) + { + m_type = AggregatorFilterTypeMapper::GetAggregatorFilterTypeForName(jsonValue.GetString("Type")); + + m_typeHasBeenSet = true; + } + + if(jsonValue.ValueExists("Value")) + { + Aws::Utils::Array valueJsonList = jsonValue.GetArray("Value"); + for(unsigned valueIndex = 0; valueIndex < valueJsonList.GetLength(); ++valueIndex) + { + m_value.push_back(valueJsonList[valueIndex].AsString()); + } + m_valueHasBeenSet = true; + } + + return *this; +} + +JsonValue AggregatorFilterServicePrincipal::Jsonize() const +{ + JsonValue payload; + + if(m_typeHasBeenSet) + { + payload.WithString("Type", AggregatorFilterTypeMapper::GetNameForAggregatorFilterType(m_type)); + } + + if(m_valueHasBeenSet) + { + Aws::Utils::Array valueJsonList(m_value.size()); + for(unsigned valueIndex = 0; valueIndex < valueJsonList.GetLength(); ++valueIndex) + { + valueJsonList[valueIndex].AsString(m_value[valueIndex]); + } + payload.WithArray("Value", std::move(valueJsonList)); + + } + + return payload; +} + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterType.cpp b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterType.cpp new file mode 100644 index 00000000000..322ccc5bee6 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilterType.cpp @@ -0,0 +1,65 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ConfigService + { + namespace Model + { + namespace AggregatorFilterTypeMapper + { + + static const int INCLUDE_HASH = HashingUtils::HashString("INCLUDE"); + + + AggregatorFilterType GetAggregatorFilterTypeForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == INCLUDE_HASH) + { + return AggregatorFilterType::INCLUDE; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return AggregatorFilterType::NOT_SET; + } + + Aws::String GetNameForAggregatorFilterType(AggregatorFilterType enumValue) + { + switch(enumValue) + { + case AggregatorFilterType::NOT_SET: + return {}; + case AggregatorFilterType::INCLUDE: + return "INCLUDE"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace AggregatorFilterTypeMapper + } // namespace Model + } // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilters.cpp b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilters.cpp new file mode 100644 index 00000000000..5b7074b2f62 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/AggregatorFilters.cpp @@ -0,0 +1,73 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + +AggregatorFilters::AggregatorFilters() : + m_resourceTypeHasBeenSet(false), + m_servicePrincipalHasBeenSet(false) +{ +} + +AggregatorFilters::AggregatorFilters(JsonView jsonValue) + : AggregatorFilters() +{ + *this = jsonValue; +} + +AggregatorFilters& AggregatorFilters::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("ResourceType")) + { + m_resourceType = jsonValue.GetObject("ResourceType"); + + m_resourceTypeHasBeenSet = true; + } + + if(jsonValue.ValueExists("ServicePrincipal")) + { + m_servicePrincipal = jsonValue.GetObject("ServicePrincipal"); + + m_servicePrincipalHasBeenSet = true; + } + + return *this; +} + +JsonValue AggregatorFilters::Jsonize() const +{ + JsonValue payload; + + if(m_resourceTypeHasBeenSet) + { + payload.WithObject("ResourceType", m_resourceType.Jsonize()); + + } + + if(m_servicePrincipalHasBeenSet) + { + payload.WithObject("ServicePrincipal", m_servicePrincipal.Jsonize()); + + } + + return payload; +} + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/AssociateResourceTypesRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/AssociateResourceTypesRequest.cpp new file mode 100644 index 00000000000..9f0ada93773 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/AssociateResourceTypesRequest.cpp @@ -0,0 +1,55 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +AssociateResourceTypesRequest::AssociateResourceTypesRequest() : + m_configurationRecorderArnHasBeenSet(false), + m_resourceTypesHasBeenSet(false) +{ +} + +Aws::String AssociateResourceTypesRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_configurationRecorderArnHasBeenSet) + { + payload.WithString("ConfigurationRecorderArn", m_configurationRecorderArn); + + } + + if(m_resourceTypesHasBeenSet) + { + Aws::Utils::Array resourceTypesJsonList(m_resourceTypes.size()); + for(unsigned resourceTypesIndex = 0; resourceTypesIndex < resourceTypesJsonList.GetLength(); ++resourceTypesIndex) + { + resourceTypesJsonList[resourceTypesIndex].AsString(ResourceTypeMapper::GetNameForResourceType(m_resourceTypes[resourceTypesIndex])); + } + payload.WithArray("ResourceTypes", std::move(resourceTypesJsonList)); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection AssociateResourceTypesRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "StarlingDoveService.AssociateResourceTypes")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-config/source/model/AssociateResourceTypesResult.cpp b/generated/src/aws-cpp-sdk-config/source/model/AssociateResourceTypesResult.cpp new file mode 100644 index 00000000000..bce5a56788f --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/AssociateResourceTypesResult.cpp @@ -0,0 +1,48 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +AssociateResourceTypesResult::AssociateResourceTypesResult() +{ +} + +AssociateResourceTypesResult::AssociateResourceTypesResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +AssociateResourceTypesResult& AssociateResourceTypesResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("ConfigurationRecorder")) + { + m_configurationRecorder = jsonValue.GetObject("ConfigurationRecorder"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationAggregator.cpp b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationAggregator.cpp index 13038a55d9d..c77b599f0bf 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationAggregator.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationAggregator.cpp @@ -25,7 +25,8 @@ ConfigurationAggregator::ConfigurationAggregator() : m_organizationAggregationSourceHasBeenSet(false), m_creationTimeHasBeenSet(false), m_lastUpdatedTimeHasBeenSet(false), - m_createdByHasBeenSet(false) + m_createdByHasBeenSet(false), + m_aggregatorFiltersHasBeenSet(false) { } @@ -89,6 +90,13 @@ ConfigurationAggregator& ConfigurationAggregator::operator =(JsonView jsonValue) m_createdByHasBeenSet = true; } + if(jsonValue.ValueExists("AggregatorFilters")) + { + m_aggregatorFilters = jsonValue.GetObject("AggregatorFilters"); + + m_aggregatorFiltersHasBeenSet = true; + } + return *this; } @@ -141,6 +149,12 @@ JsonValue ConfigurationAggregator::Jsonize() const } + if(m_aggregatorFiltersHasBeenSet) + { + payload.WithObject("AggregatorFilters", m_aggregatorFilters.Jsonize()); + + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorder.cpp b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorder.cpp index b241c37e597..122390e0442 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorder.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorder.cpp @@ -19,10 +19,14 @@ namespace Model { ConfigurationRecorder::ConfigurationRecorder() : + m_arnHasBeenSet(false), m_nameHasBeenSet(false), m_roleARNHasBeenSet(false), m_recordingGroupHasBeenSet(false), - m_recordingModeHasBeenSet(false) + m_recordingModeHasBeenSet(false), + m_recordingScope(RecordingScope::NOT_SET), + m_recordingScopeHasBeenSet(false), + m_servicePrincipalHasBeenSet(false) { } @@ -34,6 +38,13 @@ ConfigurationRecorder::ConfigurationRecorder(JsonView jsonValue) ConfigurationRecorder& ConfigurationRecorder::operator =(JsonView jsonValue) { + if(jsonValue.ValueExists("arn")) + { + m_arn = jsonValue.GetString("arn"); + + m_arnHasBeenSet = true; + } + if(jsonValue.ValueExists("name")) { m_name = jsonValue.GetString("name"); @@ -62,6 +73,20 @@ ConfigurationRecorder& ConfigurationRecorder::operator =(JsonView jsonValue) m_recordingModeHasBeenSet = true; } + if(jsonValue.ValueExists("recordingScope")) + { + m_recordingScope = RecordingScopeMapper::GetRecordingScopeForName(jsonValue.GetString("recordingScope")); + + m_recordingScopeHasBeenSet = true; + } + + if(jsonValue.ValueExists("servicePrincipal")) + { + m_servicePrincipal = jsonValue.GetString("servicePrincipal"); + + m_servicePrincipalHasBeenSet = true; + } + return *this; } @@ -69,6 +94,12 @@ JsonValue ConfigurationRecorder::Jsonize() const { JsonValue payload; + if(m_arnHasBeenSet) + { + payload.WithString("arn", m_arn); + + } + if(m_nameHasBeenSet) { payload.WithString("name", m_name); @@ -93,6 +124,17 @@ JsonValue ConfigurationRecorder::Jsonize() const } + if(m_recordingScopeHasBeenSet) + { + payload.WithString("recordingScope", RecordingScopeMapper::GetNameForRecordingScope(m_recordingScope)); + } + + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("servicePrincipal", m_servicePrincipal); + + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderFilter.cpp b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderFilter.cpp new file mode 100644 index 00000000000..4f38067dcb8 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderFilter.cpp @@ -0,0 +1,81 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + +ConfigurationRecorderFilter::ConfigurationRecorderFilter() : + m_filterName(ConfigurationRecorderFilterName::NOT_SET), + m_filterNameHasBeenSet(false), + m_filterValueHasBeenSet(false) +{ +} + +ConfigurationRecorderFilter::ConfigurationRecorderFilter(JsonView jsonValue) + : ConfigurationRecorderFilter() +{ + *this = jsonValue; +} + +ConfigurationRecorderFilter& ConfigurationRecorderFilter::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("filterName")) + { + m_filterName = ConfigurationRecorderFilterNameMapper::GetConfigurationRecorderFilterNameForName(jsonValue.GetString("filterName")); + + m_filterNameHasBeenSet = true; + } + + if(jsonValue.ValueExists("filterValue")) + { + Aws::Utils::Array filterValueJsonList = jsonValue.GetArray("filterValue"); + for(unsigned filterValueIndex = 0; filterValueIndex < filterValueJsonList.GetLength(); ++filterValueIndex) + { + m_filterValue.push_back(filterValueJsonList[filterValueIndex].AsString()); + } + m_filterValueHasBeenSet = true; + } + + return *this; +} + +JsonValue ConfigurationRecorderFilter::Jsonize() const +{ + JsonValue payload; + + if(m_filterNameHasBeenSet) + { + payload.WithString("filterName", ConfigurationRecorderFilterNameMapper::GetNameForConfigurationRecorderFilterName(m_filterName)); + } + + if(m_filterValueHasBeenSet) + { + Aws::Utils::Array filterValueJsonList(m_filterValue.size()); + for(unsigned filterValueIndex = 0; filterValueIndex < filterValueJsonList.GetLength(); ++filterValueIndex) + { + filterValueJsonList[filterValueIndex].AsString(m_filterValue[filterValueIndex]); + } + payload.WithArray("filterValue", std::move(filterValueJsonList)); + + } + + return payload; +} + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderFilterName.cpp b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderFilterName.cpp new file mode 100644 index 00000000000..9b250efc257 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderFilterName.cpp @@ -0,0 +1,65 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ConfigService + { + namespace Model + { + namespace ConfigurationRecorderFilterNameMapper + { + + static const int recordingScope_HASH = HashingUtils::HashString("recordingScope"); + + + ConfigurationRecorderFilterName GetConfigurationRecorderFilterNameForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == recordingScope_HASH) + { + return ConfigurationRecorderFilterName::recordingScope; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return ConfigurationRecorderFilterName::NOT_SET; + } + + Aws::String GetNameForConfigurationRecorderFilterName(ConfigurationRecorderFilterName enumValue) + { + switch(enumValue) + { + case ConfigurationRecorderFilterName::NOT_SET: + return {}; + case ConfigurationRecorderFilterName::recordingScope: + return "recordingScope"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace ConfigurationRecorderFilterNameMapper + } // namespace Model + } // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderStatus.cpp b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderStatus.cpp index 5aaa8bd3f0b..81f8204d89b 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderStatus.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderStatus.cpp @@ -19,6 +19,7 @@ namespace Model { ConfigurationRecorderStatus::ConfigurationRecorderStatus() : + m_arnHasBeenSet(false), m_nameHasBeenSet(false), m_lastStartTimeHasBeenSet(false), m_lastStopTimeHasBeenSet(false), @@ -28,7 +29,8 @@ ConfigurationRecorderStatus::ConfigurationRecorderStatus() : m_lastStatusHasBeenSet(false), m_lastErrorCodeHasBeenSet(false), m_lastErrorMessageHasBeenSet(false), - m_lastStatusChangeTimeHasBeenSet(false) + m_lastStatusChangeTimeHasBeenSet(false), + m_servicePrincipalHasBeenSet(false) { } @@ -40,6 +42,13 @@ ConfigurationRecorderStatus::ConfigurationRecorderStatus(JsonView jsonValue) ConfigurationRecorderStatus& ConfigurationRecorderStatus::operator =(JsonView jsonValue) { + if(jsonValue.ValueExists("arn")) + { + m_arn = jsonValue.GetString("arn"); + + m_arnHasBeenSet = true; + } + if(jsonValue.ValueExists("name")) { m_name = jsonValue.GetString("name"); @@ -96,6 +105,13 @@ ConfigurationRecorderStatus& ConfigurationRecorderStatus::operator =(JsonView js m_lastStatusChangeTimeHasBeenSet = true; } + if(jsonValue.ValueExists("servicePrincipal")) + { + m_servicePrincipal = jsonValue.GetString("servicePrincipal"); + + m_servicePrincipalHasBeenSet = true; + } + return *this; } @@ -103,6 +119,12 @@ JsonValue ConfigurationRecorderStatus::Jsonize() const { JsonValue payload; + if(m_arnHasBeenSet) + { + payload.WithString("arn", m_arn); + + } + if(m_nameHasBeenSet) { payload.WithString("name", m_name); @@ -147,6 +169,12 @@ JsonValue ConfigurationRecorderStatus::Jsonize() const payload.WithDouble("lastStatusChangeTime", m_lastStatusChangeTime.SecondsWithMSPrecision()); } + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("servicePrincipal", m_servicePrincipal); + + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderSummary.cpp b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderSummary.cpp new file mode 100644 index 00000000000..36f227c76ea --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/ConfigurationRecorderSummary.cpp @@ -0,0 +1,101 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ConfigService +{ +namespace Model +{ + +ConfigurationRecorderSummary::ConfigurationRecorderSummary() : + m_arnHasBeenSet(false), + m_nameHasBeenSet(false), + m_servicePrincipalHasBeenSet(false), + m_recordingScope(RecordingScope::NOT_SET), + m_recordingScopeHasBeenSet(false) +{ +} + +ConfigurationRecorderSummary::ConfigurationRecorderSummary(JsonView jsonValue) + : ConfigurationRecorderSummary() +{ + *this = jsonValue; +} + +ConfigurationRecorderSummary& ConfigurationRecorderSummary::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("arn")) + { + m_arn = jsonValue.GetString("arn"); + + m_arnHasBeenSet = true; + } + + if(jsonValue.ValueExists("name")) + { + m_name = jsonValue.GetString("name"); + + m_nameHasBeenSet = true; + } + + if(jsonValue.ValueExists("servicePrincipal")) + { + m_servicePrincipal = jsonValue.GetString("servicePrincipal"); + + m_servicePrincipalHasBeenSet = true; + } + + if(jsonValue.ValueExists("recordingScope")) + { + m_recordingScope = RecordingScopeMapper::GetRecordingScopeForName(jsonValue.GetString("recordingScope")); + + m_recordingScopeHasBeenSet = true; + } + + return *this; +} + +JsonValue ConfigurationRecorderSummary::Jsonize() const +{ + JsonValue payload; + + if(m_arnHasBeenSet) + { + payload.WithString("arn", m_arn); + + } + + if(m_nameHasBeenSet) + { + payload.WithString("name", m_name); + + } + + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("servicePrincipal", m_servicePrincipal); + + } + + if(m_recordingScopeHasBeenSet) + { + payload.WithString("recordingScope", RecordingScopeMapper::GetNameForRecordingScope(m_recordingScope)); + } + + return payload; +} + +} // namespace Model +} // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-config/source/model/DeleteServiceLinkedConfigurationRecorderRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/DeleteServiceLinkedConfigurationRecorderRequest.cpp new file mode 100644 index 00000000000..7e94212190e --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/DeleteServiceLinkedConfigurationRecorderRequest.cpp @@ -0,0 +1,43 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +DeleteServiceLinkedConfigurationRecorderRequest::DeleteServiceLinkedConfigurationRecorderRequest() : + m_servicePrincipalHasBeenSet(false) +{ +} + +Aws::String DeleteServiceLinkedConfigurationRecorderRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("ServicePrincipal", m_servicePrincipal); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection DeleteServiceLinkedConfigurationRecorderRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "StarlingDoveService.DeleteServiceLinkedConfigurationRecorder")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-config/source/model/DeleteServiceLinkedConfigurationRecorderResult.cpp b/generated/src/aws-cpp-sdk-config/source/model/DeleteServiceLinkedConfigurationRecorderResult.cpp new file mode 100644 index 00000000000..fe23735a33e --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/DeleteServiceLinkedConfigurationRecorderResult.cpp @@ -0,0 +1,54 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +DeleteServiceLinkedConfigurationRecorderResult::DeleteServiceLinkedConfigurationRecorderResult() +{ +} + +DeleteServiceLinkedConfigurationRecorderResult::DeleteServiceLinkedConfigurationRecorderResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +DeleteServiceLinkedConfigurationRecorderResult& DeleteServiceLinkedConfigurationRecorderResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("Arn")) + { + m_arn = jsonValue.GetString("Arn"); + + } + + if(jsonValue.ValueExists("Name")) + { + m_name = jsonValue.GetString("Name"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecorderStatusRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecorderStatusRequest.cpp index d4fc6585727..1b699a40f33 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecorderStatusRequest.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecorderStatusRequest.cpp @@ -13,7 +13,9 @@ using namespace Aws::Utils::Json; using namespace Aws::Utils; DescribeConfigurationRecorderStatusRequest::DescribeConfigurationRecorderStatusRequest() : - m_configurationRecorderNamesHasBeenSet(false) + m_configurationRecorderNamesHasBeenSet(false), + m_servicePrincipalHasBeenSet(false), + m_arnHasBeenSet(false) { } @@ -32,6 +34,18 @@ Aws::String DescribeConfigurationRecorderStatusRequest::SerializePayload() const } + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("ServicePrincipal", m_servicePrincipal); + + } + + if(m_arnHasBeenSet) + { + payload.WithString("Arn", m_arn); + + } + return payload.View().WriteReadable(); } diff --git a/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecordersRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecordersRequest.cpp index 6d4bb910b7f..3a23bad4a29 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecordersRequest.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/DescribeConfigurationRecordersRequest.cpp @@ -13,7 +13,9 @@ using namespace Aws::Utils::Json; using namespace Aws::Utils; DescribeConfigurationRecordersRequest::DescribeConfigurationRecordersRequest() : - m_configurationRecorderNamesHasBeenSet(false) + m_configurationRecorderNamesHasBeenSet(false), + m_servicePrincipalHasBeenSet(false), + m_arnHasBeenSet(false) { } @@ -32,6 +34,18 @@ Aws::String DescribeConfigurationRecordersRequest::SerializePayload() const } + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("ServicePrincipal", m_servicePrincipal); + + } + + if(m_arnHasBeenSet) + { + payload.WithString("Arn", m_arn); + + } + return payload.View().WriteReadable(); } diff --git a/generated/src/aws-cpp-sdk-config/source/model/DisassociateResourceTypesRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/DisassociateResourceTypesRequest.cpp new file mode 100644 index 00000000000..3955c42ed49 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/DisassociateResourceTypesRequest.cpp @@ -0,0 +1,55 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +DisassociateResourceTypesRequest::DisassociateResourceTypesRequest() : + m_configurationRecorderArnHasBeenSet(false), + m_resourceTypesHasBeenSet(false) +{ +} + +Aws::String DisassociateResourceTypesRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_configurationRecorderArnHasBeenSet) + { + payload.WithString("ConfigurationRecorderArn", m_configurationRecorderArn); + + } + + if(m_resourceTypesHasBeenSet) + { + Aws::Utils::Array resourceTypesJsonList(m_resourceTypes.size()); + for(unsigned resourceTypesIndex = 0; resourceTypesIndex < resourceTypesJsonList.GetLength(); ++resourceTypesIndex) + { + resourceTypesJsonList[resourceTypesIndex].AsString(ResourceTypeMapper::GetNameForResourceType(m_resourceTypes[resourceTypesIndex])); + } + payload.WithArray("ResourceTypes", std::move(resourceTypesJsonList)); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection DisassociateResourceTypesRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "StarlingDoveService.DisassociateResourceTypes")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-config/source/model/DisassociateResourceTypesResult.cpp b/generated/src/aws-cpp-sdk-config/source/model/DisassociateResourceTypesResult.cpp new file mode 100644 index 00000000000..406dd35eca7 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/DisassociateResourceTypesResult.cpp @@ -0,0 +1,48 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +DisassociateResourceTypesResult::DisassociateResourceTypesResult() +{ +} + +DisassociateResourceTypesResult::DisassociateResourceTypesResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +DisassociateResourceTypesResult& DisassociateResourceTypesResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("ConfigurationRecorder")) + { + m_configurationRecorder = jsonValue.GetObject("ConfigurationRecorder"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-config/source/model/ListConfigurationRecordersRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/ListConfigurationRecordersRequest.cpp new file mode 100644 index 00000000000..1accf36552f --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/ListConfigurationRecordersRequest.cpp @@ -0,0 +1,63 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +ListConfigurationRecordersRequest::ListConfigurationRecordersRequest() : + m_filtersHasBeenSet(false), + m_maxResults(0), + m_maxResultsHasBeenSet(false), + m_nextTokenHasBeenSet(false) +{ +} + +Aws::String ListConfigurationRecordersRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_filtersHasBeenSet) + { + Aws::Utils::Array filtersJsonList(m_filters.size()); + for(unsigned filtersIndex = 0; filtersIndex < filtersJsonList.GetLength(); ++filtersIndex) + { + filtersJsonList[filtersIndex].AsObject(m_filters[filtersIndex].Jsonize()); + } + payload.WithArray("Filters", std::move(filtersJsonList)); + + } + + if(m_maxResultsHasBeenSet) + { + payload.WithInteger("MaxResults", m_maxResults); + + } + + if(m_nextTokenHasBeenSet) + { + payload.WithString("NextToken", m_nextToken); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection ListConfigurationRecordersRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "StarlingDoveService.ListConfigurationRecorders")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-config/source/model/ListConfigurationRecordersResult.cpp b/generated/src/aws-cpp-sdk-config/source/model/ListConfigurationRecordersResult.cpp new file mode 100644 index 00000000000..b40acc76cfc --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/ListConfigurationRecordersResult.cpp @@ -0,0 +1,57 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +ListConfigurationRecordersResult::ListConfigurationRecordersResult() +{ +} + +ListConfigurationRecordersResult::ListConfigurationRecordersResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +ListConfigurationRecordersResult& ListConfigurationRecordersResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("ConfigurationRecorderSummaries")) + { + Aws::Utils::Array configurationRecorderSummariesJsonList = jsonValue.GetArray("ConfigurationRecorderSummaries"); + for(unsigned configurationRecorderSummariesIndex = 0; configurationRecorderSummariesIndex < configurationRecorderSummariesJsonList.GetLength(); ++configurationRecorderSummariesIndex) + { + m_configurationRecorderSummaries.push_back(configurationRecorderSummariesJsonList[configurationRecorderSummariesIndex].AsObject()); + } + } + + if(jsonValue.ValueExists("NextToken")) + { + m_nextToken = jsonValue.GetString("NextToken"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationAggregatorRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationAggregatorRequest.cpp index dc22e8bfd5d..5d48cef95bf 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationAggregatorRequest.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationAggregatorRequest.cpp @@ -16,7 +16,8 @@ PutConfigurationAggregatorRequest::PutConfigurationAggregatorRequest() : m_configurationAggregatorNameHasBeenSet(false), m_accountAggregationSourcesHasBeenSet(false), m_organizationAggregationSourceHasBeenSet(false), - m_tagsHasBeenSet(false) + m_tagsHasBeenSet(false), + m_aggregatorFiltersHasBeenSet(false) { } @@ -58,6 +59,12 @@ Aws::String PutConfigurationAggregatorRequest::SerializePayload() const } + if(m_aggregatorFiltersHasBeenSet) + { + payload.WithObject("AggregatorFilters", m_aggregatorFilters.Jsonize()); + + } + return payload.View().WriteReadable(); } diff --git a/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationRecorderRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationRecorderRequest.cpp index 1add271af4c..c9d21917ba7 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationRecorderRequest.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/PutConfigurationRecorderRequest.cpp @@ -13,7 +13,8 @@ using namespace Aws::Utils::Json; using namespace Aws::Utils; PutConfigurationRecorderRequest::PutConfigurationRecorderRequest() : - m_configurationRecorderHasBeenSet(false) + m_configurationRecorderHasBeenSet(false), + m_tagsHasBeenSet(false) { } @@ -27,6 +28,17 @@ Aws::String PutConfigurationRecorderRequest::SerializePayload() const } + if(m_tagsHasBeenSet) + { + Aws::Utils::Array tagsJsonList(m_tags.size()); + for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex) + { + tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize()); + } + payload.WithArray("Tags", std::move(tagsJsonList)); + + } + return payload.View().WriteReadable(); } diff --git a/generated/src/aws-cpp-sdk-config/source/model/PutServiceLinkedConfigurationRecorderRequest.cpp b/generated/src/aws-cpp-sdk-config/source/model/PutServiceLinkedConfigurationRecorderRequest.cpp new file mode 100644 index 00000000000..18a385b1094 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/PutServiceLinkedConfigurationRecorderRequest.cpp @@ -0,0 +1,55 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +PutServiceLinkedConfigurationRecorderRequest::PutServiceLinkedConfigurationRecorderRequest() : + m_servicePrincipalHasBeenSet(false), + m_tagsHasBeenSet(false) +{ +} + +Aws::String PutServiceLinkedConfigurationRecorderRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_servicePrincipalHasBeenSet) + { + payload.WithString("ServicePrincipal", m_servicePrincipal); + + } + + if(m_tagsHasBeenSet) + { + Aws::Utils::Array tagsJsonList(m_tags.size()); + for(unsigned tagsIndex = 0; tagsIndex < tagsJsonList.GetLength(); ++tagsIndex) + { + tagsJsonList[tagsIndex].AsObject(m_tags[tagsIndex].Jsonize()); + } + payload.WithArray("Tags", std::move(tagsJsonList)); + + } + + return payload.View().WriteReadable(); +} + +Aws::Http::HeaderValueCollection PutServiceLinkedConfigurationRecorderRequest::GetRequestSpecificHeaders() const +{ + Aws::Http::HeaderValueCollection headers; + headers.insert(Aws::Http::HeaderValuePair("X-Amz-Target", "StarlingDoveService.PutServiceLinkedConfigurationRecorder")); + return headers; + +} + + + + diff --git a/generated/src/aws-cpp-sdk-config/source/model/PutServiceLinkedConfigurationRecorderResult.cpp b/generated/src/aws-cpp-sdk-config/source/model/PutServiceLinkedConfigurationRecorderResult.cpp new file mode 100644 index 00000000000..08aa5a3846b --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/PutServiceLinkedConfigurationRecorderResult.cpp @@ -0,0 +1,54 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ConfigService::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +PutServiceLinkedConfigurationRecorderResult::PutServiceLinkedConfigurationRecorderResult() +{ +} + +PutServiceLinkedConfigurationRecorderResult::PutServiceLinkedConfigurationRecorderResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +PutServiceLinkedConfigurationRecorderResult& PutServiceLinkedConfigurationRecorderResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("Arn")) + { + m_arn = jsonValue.GetString("Arn"); + + } + + if(jsonValue.ValueExists("Name")) + { + m_name = jsonValue.GetString("Name"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-config/source/model/RecorderStatus.cpp b/generated/src/aws-cpp-sdk-config/source/model/RecorderStatus.cpp index 15a2ac80121..63c8a471379 100644 --- a/generated/src/aws-cpp-sdk-config/source/model/RecorderStatus.cpp +++ b/generated/src/aws-cpp-sdk-config/source/model/RecorderStatus.cpp @@ -23,6 +23,7 @@ namespace Aws static const int Pending_HASH = HashingUtils::HashString("Pending"); static const int Success_HASH = HashingUtils::HashString("Success"); static const int Failure_HASH = HashingUtils::HashString("Failure"); + static const int NotApplicable_HASH = HashingUtils::HashString("NotApplicable"); RecorderStatus GetRecorderStatusForName(const Aws::String& name) @@ -40,6 +41,10 @@ namespace Aws { return RecorderStatus::Failure; } + else if (hashCode == NotApplicable_HASH) + { + return RecorderStatus::NotApplicable; + } EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); if(overflowContainer) { @@ -62,6 +67,8 @@ namespace Aws return "Success"; case RecorderStatus::Failure: return "Failure"; + case RecorderStatus::NotApplicable: + return "NotApplicable"; default: EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); if(overflowContainer) diff --git a/generated/src/aws-cpp-sdk-config/source/model/RecordingScope.cpp b/generated/src/aws-cpp-sdk-config/source/model/RecordingScope.cpp new file mode 100644 index 00000000000..7adff934396 --- /dev/null +++ b/generated/src/aws-cpp-sdk-config/source/model/RecordingScope.cpp @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ConfigService + { + namespace Model + { + namespace RecordingScopeMapper + { + + static const int INTERNAL_HASH = HashingUtils::HashString("INTERNAL"); + static const int PAID_HASH = HashingUtils::HashString("PAID"); + + + RecordingScope GetRecordingScopeForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == INTERNAL_HASH) + { + return RecordingScope::INTERNAL; + } + else if (hashCode == PAID_HASH) + { + return RecordingScope::PAID; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return RecordingScope::NOT_SET; + } + + Aws::String GetNameForRecordingScope(RecordingScope enumValue) + { + switch(enumValue) + { + case RecordingScope::NOT_SET: + return {}; + case RecordingScope::INTERNAL: + return "INTERNAL"; + case RecordingScope::PAID: + return "PAID"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace RecordingScopeMapper + } // namespace Model + } // namespace ConfigService +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/CreateFileSystemLustreConfiguration.h b/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/CreateFileSystemLustreConfiguration.h index 191bbad81c1..52a2361ba18 100644 --- a/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/CreateFileSystemLustreConfiguration.h +++ b/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/CreateFileSystemLustreConfiguration.h @@ -309,6 +309,18 @@ namespace Model inline CreateFileSystemLustreConfiguration& WithDataCompressionType(DataCompressionType&& value) { SetDataCompressionType(std::move(value)); return *this;} ///@} + ///@{ + /** + *

    (Optional) Specifies whether Elastic Fabric Adapter (EFA) and GPUDirect + * Storage (GDS) support is enabled for the Amazon FSx for Lustre file system.

    + *

    (Default = false)

    + */ + inline bool GetEfaEnabled() const{ return m_efaEnabled; } + inline bool EfaEnabledHasBeenSet() const { return m_efaEnabledHasBeenSet; } + inline void SetEfaEnabled(bool value) { m_efaEnabledHasBeenSet = true; m_efaEnabled = value; } + inline CreateFileSystemLustreConfiguration& WithEfaEnabled(bool value) { SetEfaEnabled(value); return *this;} + ///@} + ///@{ /** *

    The Lustre logging configuration used when creating an Amazon FSx for Lustre @@ -388,6 +400,9 @@ namespace Model DataCompressionType m_dataCompressionType; bool m_dataCompressionTypeHasBeenSet = false; + bool m_efaEnabled; + bool m_efaEnabledHasBeenSet = false; + LustreLogCreateConfiguration m_logConfiguration; bool m_logConfigurationHasBeenSet = false; diff --git a/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/LustreFileSystemConfiguration.h b/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/LustreFileSystemConfiguration.h index 3d2ef81c235..96e9fa7eb02 100644 --- a/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/LustreFileSystemConfiguration.h +++ b/generated/src/aws-cpp-sdk-fsx/include/aws/fsx/model/LustreFileSystemConfiguration.h @@ -243,6 +243,17 @@ namespace Model inline LustreFileSystemConfiguration& WithMetadataConfiguration(const FileSystemLustreMetadataConfiguration& value) { SetMetadataConfiguration(value); return *this;} inline LustreFileSystemConfiguration& WithMetadataConfiguration(FileSystemLustreMetadataConfiguration&& value) { SetMetadataConfiguration(std::move(value)); return *this;} ///@} + + ///@{ + /** + *

    Specifies whether Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) + * support is enabled for the Amazon FSx for Lustre file system.

    + */ + inline bool GetEfaEnabled() const{ return m_efaEnabled; } + inline bool EfaEnabledHasBeenSet() const { return m_efaEnabledHasBeenSet; } + inline void SetEfaEnabled(bool value) { m_efaEnabledHasBeenSet = true; m_efaEnabled = value; } + inline LustreFileSystemConfiguration& WithEfaEnabled(bool value) { SetEfaEnabled(value); return *this;} + ///@} private: Aws::String m_weeklyMaintenanceStartTime; @@ -283,6 +294,9 @@ namespace Model FileSystemLustreMetadataConfiguration m_metadataConfiguration; bool m_metadataConfigurationHasBeenSet = false; + + bool m_efaEnabled; + bool m_efaEnabledHasBeenSet = false; }; } // namespace Model diff --git a/generated/src/aws-cpp-sdk-fsx/source/model/CreateFileSystemLustreConfiguration.cpp b/generated/src/aws-cpp-sdk-fsx/source/model/CreateFileSystemLustreConfiguration.cpp index 7d35eecb43f..ecb262162cc 100644 --- a/generated/src/aws-cpp-sdk-fsx/source/model/CreateFileSystemLustreConfiguration.cpp +++ b/generated/src/aws-cpp-sdk-fsx/source/model/CreateFileSystemLustreConfiguration.cpp @@ -39,6 +39,8 @@ CreateFileSystemLustreConfiguration::CreateFileSystemLustreConfiguration() : m_driveCacheTypeHasBeenSet(false), m_dataCompressionType(DataCompressionType::NOT_SET), m_dataCompressionTypeHasBeenSet(false), + m_efaEnabled(false), + m_efaEnabledHasBeenSet(false), m_logConfigurationHasBeenSet(false), m_rootSquashConfigurationHasBeenSet(false), m_metadataConfigurationHasBeenSet(false) @@ -137,6 +139,13 @@ CreateFileSystemLustreConfiguration& CreateFileSystemLustreConfiguration::operat m_dataCompressionTypeHasBeenSet = true; } + if(jsonValue.ValueExists("EfaEnabled")) + { + m_efaEnabled = jsonValue.GetBool("EfaEnabled"); + + m_efaEnabledHasBeenSet = true; + } + if(jsonValue.ValueExists("LogConfiguration")) { m_logConfiguration = jsonValue.GetObject("LogConfiguration"); @@ -233,6 +242,12 @@ JsonValue CreateFileSystemLustreConfiguration::Jsonize() const payload.WithString("DataCompressionType", DataCompressionTypeMapper::GetNameForDataCompressionType(m_dataCompressionType)); } + if(m_efaEnabledHasBeenSet) + { + payload.WithBool("EfaEnabled", m_efaEnabled); + + } + if(m_logConfigurationHasBeenSet) { payload.WithObject("LogConfiguration", m_logConfiguration.Jsonize()); diff --git a/generated/src/aws-cpp-sdk-fsx/source/model/LustreFileSystemConfiguration.cpp b/generated/src/aws-cpp-sdk-fsx/source/model/LustreFileSystemConfiguration.cpp index 2a8bacb198d..e23513b0968 100644 --- a/generated/src/aws-cpp-sdk-fsx/source/model/LustreFileSystemConfiguration.cpp +++ b/generated/src/aws-cpp-sdk-fsx/source/model/LustreFileSystemConfiguration.cpp @@ -37,7 +37,9 @@ LustreFileSystemConfiguration::LustreFileSystemConfiguration() : m_dataCompressionTypeHasBeenSet(false), m_logConfigurationHasBeenSet(false), m_rootSquashConfigurationHasBeenSet(false), - m_metadataConfigurationHasBeenSet(false) + m_metadataConfigurationHasBeenSet(false), + m_efaEnabled(false), + m_efaEnabledHasBeenSet(false) { } @@ -140,6 +142,13 @@ LustreFileSystemConfiguration& LustreFileSystemConfiguration::operator =(JsonVie m_metadataConfigurationHasBeenSet = true; } + if(jsonValue.ValueExists("EfaEnabled")) + { + m_efaEnabled = jsonValue.GetBool("EfaEnabled"); + + m_efaEnabledHasBeenSet = true; + } + return *this; } @@ -222,6 +231,12 @@ JsonValue LustreFileSystemConfiguration::Jsonize() const } + if(m_efaEnabledHasBeenSet) + { + payload.WithBool("EfaEnabled", m_efaEnabled); + + } + return payload; } diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/CMakeLists.txt b/generated/src/aws-cpp-sdk-observabilityadmin/CMakeLists.txt new file mode 100644 index 00000000000..21ae6f01443 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/CMakeLists.txt @@ -0,0 +1,76 @@ +add_project(aws-cpp-sdk-observabilityadmin "C++ SDK for the AWS observabilityadmin service" aws-cpp-sdk-core) + +file(GLOB AWS_OBSERVABILITYADMIN_HEADERS + "include/aws/observabilityadmin/*.h" +) + +file(GLOB AWS_OBSERVABILITYADMIN_MODEL_HEADERS + "include/aws/observabilityadmin/model/*.h" +) + +file(GLOB AWS_OBSERVABILITYADMIN_SOURCE + "source/*.cpp" +) + +file(GLOB AWS_OBSERVABILITYADMIN_MODEL_SOURCE + "source/model/*.cpp" +) + +file(GLOB OBSERVABILITYADMIN_UNIFIED_HEADERS + ${AWS_OBSERVABILITYADMIN_HEADERS} + ${AWS_OBSERVABILITYADMIN_MODEL_HEADERS} +) + +file(GLOB OBSERVABILITYADMIN_UNITY_SRC + ${AWS_OBSERVABILITYADMIN_SOURCE} + ${AWS_OBSERVABILITYADMIN_MODEL_SOURCE} +) + +if(ENABLE_UNITY_BUILD) + enable_unity_build("OBSERVABILITYADMIN" OBSERVABILITYADMIN_UNITY_SRC) +endif() + +file(GLOB OBSERVABILITYADMIN_SRC + ${OBSERVABILITYADMIN_UNIFIED_HEADERS} + ${OBSERVABILITYADMIN_UNITY_SRC} +) + +if(WIN32) + #if we are compiling for visual studio, create a sane directory tree. + if(MSVC) + source_group("Header Files\\aws\\observabilityadmin" FILES ${AWS_OBSERVABILITYADMIN_HEADERS}) + source_group("Header Files\\aws\\observabilityadmin\\model" FILES ${AWS_OBSERVABILITYADMIN_MODEL_HEADERS}) + source_group("Source Files" FILES ${AWS_OBSERVABILITYADMIN_SOURCE}) + source_group("Source Files\\model" FILES ${AWS_OBSERVABILITYADMIN_MODEL_SOURCE}) + endif(MSVC) +endif() + +set(OBSERVABILITYADMIN_INCLUDES + "${CMAKE_CURRENT_SOURCE_DIR}/include/" +) + +add_library(${PROJECT_NAME} ${OBSERVABILITYADMIN_SRC}) +add_library(AWS::${PROJECT_NAME} ALIAS ${PROJECT_NAME}) + +set_compiler_flags(${PROJECT_NAME}) +set_compiler_warnings(${PROJECT_NAME}) + +if(USE_WINDOWS_DLL_SEMANTICS AND BUILD_SHARED_LIBS) + target_compile_definitions(${PROJECT_NAME} PRIVATE "AWS_OBSERVABILITYADMIN_EXPORTS") +endif() + +target_include_directories(${PROJECT_NAME} PUBLIC + $ + $) + +target_link_libraries(${PROJECT_NAME} PRIVATE ${PLATFORM_DEP_LIBS} ${PROJECT_LIBS}) + + +setup_install() + +install (FILES ${AWS_OBSERVABILITYADMIN_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/observabilityadmin) +install (FILES ${AWS_OBSERVABILITYADMIN_MODEL_HEADERS} DESTINATION ${INCLUDE_DIRECTORY}/aws/observabilityadmin/model) + +do_packaging() + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminClient.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminClient.h new file mode 100644 index 00000000000..17e5a762d63 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminClient.h @@ -0,0 +1,315 @@ +/** + * 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 ObservabilityAdmin +{ + /** + *

    Amazon CloudWatch Obsersavability Admin to control temletry config for your + * AWS Organization or account. Telemetry config config to discover and understand + * the state of telemetry configuration for your AWS resources from a central view + * in the CloudWatch console. Telemetry config simplifies the process of auditing + * your telemetry collection configurations across multiple resource types across + * your AWS Organization or account. For more information, see Auditing + * CloudWatch telemetry configurations in the CloudWatch User Guide.

    For + * information on the permissions you need to use this API, see Identity + * and access management for Amazon CloudWatch in the CloudWatch User + * Guide.

    + */ + class AWS_OBSERVABILITYADMIN_API ObservabilityAdminClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods + { + public: + typedef Aws::Client::AWSJsonClient BASECLASS; + static const char* GetServiceName(); + static const char* GetAllocationTag(); + + typedef ObservabilityAdminClientConfiguration ClientConfigurationType; + typedef ObservabilityAdminEndpointProvider 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. + */ + ObservabilityAdminClient(const Aws::ObservabilityAdmin::ObservabilityAdminClientConfiguration& clientConfiguration = Aws::ObservabilityAdmin::ObservabilityAdminClientConfiguration(), + std::shared_ptr endpointProvider = nullptr); + + /** + * 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. + */ + ObservabilityAdminClient(const Aws::Auth::AWSCredentials& credentials, + std::shared_ptr endpointProvider = nullptr, + const Aws::ObservabilityAdmin::ObservabilityAdminClientConfiguration& clientConfiguration = Aws::ObservabilityAdmin::ObservabilityAdminClientConfiguration()); + + /** + * 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 + */ + ObservabilityAdminClient(const std::shared_ptr& credentialsProvider, + std::shared_ptr endpointProvider = nullptr, + const Aws::ObservabilityAdmin::ObservabilityAdminClientConfiguration& clientConfiguration = Aws::ObservabilityAdmin::ObservabilityAdminClientConfiguration()); + + + /* 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. + */ + ObservabilityAdminClient(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. + */ + ObservabilityAdminClient(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 + */ + ObservabilityAdminClient(const std::shared_ptr& credentialsProvider, + const Aws::Client::ClientConfiguration& clientConfiguration); + + /* End of legacy constructors due deprecation */ + virtual ~ObservabilityAdminClient(); + + /** + *

    Returns the current onboarding status of the telemetry config feature, + * including the status of the feature and reason the feature failed to start or + * stop.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::GetTelemetryEvaluationStatusOutcome GetTelemetryEvaluationStatus(const Model::GetTelemetryEvaluationStatusRequest& request = {}) const; + + /** + * A Callable wrapper for GetTelemetryEvaluationStatus that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::GetTelemetryEvaluationStatusOutcomeCallable GetTelemetryEvaluationStatusCallable(const GetTelemetryEvaluationStatusRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::GetTelemetryEvaluationStatus, request); + } + + /** + * An Async wrapper for GetTelemetryEvaluationStatus that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void GetTelemetryEvaluationStatusAsync(const GetTelemetryEvaluationStatusResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const GetTelemetryEvaluationStatusRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::GetTelemetryEvaluationStatus, request, handler, context); + } + + /** + *

    This returns the onboarding status of the telemetry configuration feature + * for the organization. It can only be called by a Management Account of an AWS + * Organization or an assigned Delegated Admin Account of AWS CloudWatch telemetry + * config.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::GetTelemetryEvaluationStatusForOrganizationOutcome GetTelemetryEvaluationStatusForOrganization(const Model::GetTelemetryEvaluationStatusForOrganizationRequest& request = {}) const; + + /** + * A Callable wrapper for GetTelemetryEvaluationStatusForOrganization that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::GetTelemetryEvaluationStatusForOrganizationOutcomeCallable GetTelemetryEvaluationStatusForOrganizationCallable(const GetTelemetryEvaluationStatusForOrganizationRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::GetTelemetryEvaluationStatusForOrganization, request); + } + + /** + * An Async wrapper for GetTelemetryEvaluationStatusForOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void GetTelemetryEvaluationStatusForOrganizationAsync(const GetTelemetryEvaluationStatusForOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const GetTelemetryEvaluationStatusForOrganizationRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::GetTelemetryEvaluationStatusForOrganization, request, handler, context); + } + + /** + *

    Returns a list of telemetry configurations for AWS resources supported by + * telemetry config. For more information, see Auditing + * CloudWatch telemetry configurations.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::ListResourceTelemetryOutcome ListResourceTelemetry(const Model::ListResourceTelemetryRequest& request = {}) const; + + /** + * A Callable wrapper for ListResourceTelemetry that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::ListResourceTelemetryOutcomeCallable ListResourceTelemetryCallable(const ListResourceTelemetryRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::ListResourceTelemetry, request); + } + + /** + * An Async wrapper for ListResourceTelemetry that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void ListResourceTelemetryAsync(const ListResourceTelemetryResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const ListResourceTelemetryRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::ListResourceTelemetry, request, handler, context); + } + + /** + *

    Returns a list of telemetry configurations for AWS resources supported by + * telemetry config in the organization.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::ListResourceTelemetryForOrganizationOutcome ListResourceTelemetryForOrganization(const Model::ListResourceTelemetryForOrganizationRequest& request = {}) const; + + /** + * A Callable wrapper for ListResourceTelemetryForOrganization that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::ListResourceTelemetryForOrganizationOutcomeCallable ListResourceTelemetryForOrganizationCallable(const ListResourceTelemetryForOrganizationRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::ListResourceTelemetryForOrganization, request); + } + + /** + * An Async wrapper for ListResourceTelemetryForOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void ListResourceTelemetryForOrganizationAsync(const ListResourceTelemetryForOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const ListResourceTelemetryForOrganizationRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::ListResourceTelemetryForOrganization, request, handler, context); + } + + /** + *

    This action begins onboarding onboarding the caller AWS account to the + * telemetry config feature.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::StartTelemetryEvaluationOutcome StartTelemetryEvaluation(const Model::StartTelemetryEvaluationRequest& request = {}) const; + + /** + * A Callable wrapper for StartTelemetryEvaluation that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::StartTelemetryEvaluationOutcomeCallable StartTelemetryEvaluationCallable(const StartTelemetryEvaluationRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::StartTelemetryEvaluation, request); + } + + /** + * An Async wrapper for StartTelemetryEvaluation that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void StartTelemetryEvaluationAsync(const StartTelemetryEvaluationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const StartTelemetryEvaluationRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::StartTelemetryEvaluation, request, handler, context); + } + + /** + *

    This actions begins onboarding the organization and all member accounts to + * the telemetry config feature.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::StartTelemetryEvaluationForOrganizationOutcome StartTelemetryEvaluationForOrganization(const Model::StartTelemetryEvaluationForOrganizationRequest& request = {}) const; + + /** + * A Callable wrapper for StartTelemetryEvaluationForOrganization that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::StartTelemetryEvaluationForOrganizationOutcomeCallable StartTelemetryEvaluationForOrganizationCallable(const StartTelemetryEvaluationForOrganizationRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::StartTelemetryEvaluationForOrganization, request); + } + + /** + * An Async wrapper for StartTelemetryEvaluationForOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void StartTelemetryEvaluationForOrganizationAsync(const StartTelemetryEvaluationForOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const StartTelemetryEvaluationForOrganizationRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::StartTelemetryEvaluationForOrganization, request, handler, context); + } + + /** + *

    This action begins offboarding the caller AWS account from the telemetry + * config feature.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::StopTelemetryEvaluationOutcome StopTelemetryEvaluation(const Model::StopTelemetryEvaluationRequest& request = {}) const; + + /** + * A Callable wrapper for StopTelemetryEvaluation that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::StopTelemetryEvaluationOutcomeCallable StopTelemetryEvaluationCallable(const StopTelemetryEvaluationRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::StopTelemetryEvaluation, request); + } + + /** + * An Async wrapper for StopTelemetryEvaluation that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void StopTelemetryEvaluationAsync(const StopTelemetryEvaluationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const StopTelemetryEvaluationRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::StopTelemetryEvaluation, request, handler, context); + } + + /** + *

    This action offboards the Organization of the caller AWS account from thef + * telemetry config feature.

    See Also:

    AWS + * API Reference

    + */ + virtual Model::StopTelemetryEvaluationForOrganizationOutcome StopTelemetryEvaluationForOrganization(const Model::StopTelemetryEvaluationForOrganizationRequest& request = {}) const; + + /** + * A Callable wrapper for StopTelemetryEvaluationForOrganization that returns a future to the operation so that it can be executed in parallel to other requests. + */ + template + Model::StopTelemetryEvaluationForOrganizationOutcomeCallable StopTelemetryEvaluationForOrganizationCallable(const StopTelemetryEvaluationForOrganizationRequestT& request = {}) const + { + return SubmitCallable(&ObservabilityAdminClient::StopTelemetryEvaluationForOrganization, request); + } + + /** + * An Async wrapper for StopTelemetryEvaluationForOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. + */ + template + void StopTelemetryEvaluationForOrganizationAsync(const StopTelemetryEvaluationForOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr, const StopTelemetryEvaluationForOrganizationRequestT& request = {}) const + { + return SubmitAsync(&ObservabilityAdminClient::StopTelemetryEvaluationForOrganization, request, handler, context); + } + + + void OverrideEndpoint(const Aws::String& endpoint); + std::shared_ptr& accessEndpointProvider(); + private: + friend class Aws::Client::ClientWithAsyncTemplateMethods; + void init(const ObservabilityAdminClientConfiguration& clientConfiguration); + + ObservabilityAdminClientConfiguration m_clientConfiguration; + std::shared_ptr m_endpointProvider; + }; + +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminEndpointProvider.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminEndpointProvider.h new file mode 100644 index 00000000000..62882f80510 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminEndpointProvider.h @@ -0,0 +1,61 @@ +/** + * 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 + + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Endpoint +{ +using EndpointParameters = Aws::Endpoint::EndpointParameters; +using Aws::Endpoint::EndpointProviderBase; +using Aws::Endpoint::DefaultEndpointProvider; + +using ObservabilityAdminClientContextParameters = Aws::Endpoint::ClientContextParameters; + +using ObservabilityAdminClientConfiguration = Aws::Client::GenericClientConfiguration; +using ObservabilityAdminBuiltInParameters = Aws::Endpoint::BuiltInParameters; + +/** + * The type for the ObservabilityAdmin Client Endpoint Provider. + * Inherit from this Base class / "Interface" should you want to provide a custom endpoint provider. + * The SDK must use service-specific type for each service per specification. + */ +using ObservabilityAdminEndpointProviderBase = + EndpointProviderBase; + +using ObservabilityAdminDefaultEpProviderBase = + DefaultEndpointProvider; + +/** + * Default endpoint provider used for this service + */ +class AWS_OBSERVABILITYADMIN_API ObservabilityAdminEndpointProvider : public ObservabilityAdminDefaultEpProviderBase +{ +public: + using ObservabilityAdminResolveEndpointOutcome = Aws::Endpoint::ResolveEndpointOutcome; + + ObservabilityAdminEndpointProvider() + : ObservabilityAdminDefaultEpProviderBase(Aws::ObservabilityAdmin::ObservabilityAdminEndpointRules::GetRulesBlob(), Aws::ObservabilityAdmin::ObservabilityAdminEndpointRules::RulesBlobSize) + {} + + ~ObservabilityAdminEndpointProvider() + { + } +}; +} // namespace Endpoint +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminEndpointRules.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminEndpointRules.h new file mode 100644 index 00000000000..62b1f6091b3 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminEndpointRules.h @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +class ObservabilityAdminEndpointRules +{ +public: + static const size_t RulesBlobStrLen; + static const size_t RulesBlobSize; + + static const char* GetRulesBlob(); +}; +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminErrorMarshaller.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminErrorMarshaller.h new file mode 100644 index 00000000000..b316c17f6e2 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminErrorMarshaller.h @@ -0,0 +1,23 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once + +#include +#include + +namespace Aws +{ +namespace Client +{ + +class AWS_OBSERVABILITYADMIN_API ObservabilityAdminErrorMarshaller : public Aws::Client::JsonErrorMarshaller +{ +public: + Aws::Client::AWSError FindErrorByName(const char* exceptionName) const override; +}; + +} // namespace Client +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminErrors.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminErrors.h new file mode 100644 index 00000000000..103639ea9b8 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminErrors.h @@ -0,0 +1,72 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once + +#include +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +enum class ObservabilityAdminErrors +{ + //From Core// + ////////////////////////////////////////////////////////////////////////////////////////// + INCOMPLETE_SIGNATURE = 0, + INTERNAL_FAILURE = 1, + INVALID_ACTION = 2, + INVALID_CLIENT_TOKEN_ID = 3, + INVALID_PARAMETER_COMBINATION = 4, + INVALID_QUERY_PARAMETER = 5, + INVALID_PARAMETER_VALUE = 6, + MISSING_ACTION = 7, // SDK should never allow + MISSING_AUTHENTICATION_TOKEN = 8, // SDK should never allow + MISSING_PARAMETER = 9, // SDK should never allow + OPT_IN_REQUIRED = 10, + REQUEST_EXPIRED = 11, + SERVICE_UNAVAILABLE = 12, + THROTTLING = 13, + VALIDATION = 14, + ACCESS_DENIED = 15, + RESOURCE_NOT_FOUND = 16, + UNRECOGNIZED_CLIENT = 17, + MALFORMED_QUERY_STRING = 18, + SLOW_DOWN = 19, + REQUEST_TIME_TOO_SKEWED = 20, + INVALID_SIGNATURE = 21, + SIGNATURE_DOES_NOT_MATCH = 22, + INVALID_ACCESS_KEY_ID = 23, + REQUEST_TIMEOUT = 24, + NETWORK_CONNECTION = 99, + + UNKNOWN = 100, + /////////////////////////////////////////////////////////////////////////////////////////// + + INTERNAL_SERVER= static_cast(Aws::Client::CoreErrors::SERVICE_EXTENSION_START_RANGE) + 1 +}; + +class AWS_OBSERVABILITYADMIN_API ObservabilityAdminError : public Aws::Client::AWSError +{ +public: + ObservabilityAdminError() {} + ObservabilityAdminError(const Aws::Client::AWSError& rhs) : Aws::Client::AWSError(rhs) {} + ObservabilityAdminError(Aws::Client::AWSError&& rhs) : Aws::Client::AWSError(rhs) {} + ObservabilityAdminError(const Aws::Client::AWSError& rhs) : Aws::Client::AWSError(rhs) {} + ObservabilityAdminError(Aws::Client::AWSError&& rhs) : Aws::Client::AWSError(rhs) {} + + template + T GetModeledError(); +}; + +namespace ObservabilityAdminErrorMapper +{ + AWS_OBSERVABILITYADMIN_API Aws::Client::AWSError GetErrorForName(const char* errorName); +} + +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminRequest.h new file mode 100644 index 00000000000..fdec7565ea1 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminRequest.h @@ -0,0 +1,46 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ + class AWS_OBSERVABILITYADMIN_API ObservabilityAdminRequest : public Aws::AmazonSerializableWebServiceRequest + { + public: + using EndpointParameter = Aws::Endpoint::EndpointParameter; + using EndpointParameters = Aws::Endpoint::EndpointParameters; + + virtual ~ObservabilityAdminRequest () {} + + void AddParametersToRequest(Aws::Http::HttpRequest& httpRequest) const { AWS_UNREFERENCED_PARAM(httpRequest); } + + inline Aws::Http::HeaderValueCollection GetHeaders() const override + { + auto headers = GetRequestSpecificHeaders(); + + if(headers.size() == 0 || (headers.size() > 0 && headers.count(Aws::Http::CONTENT_TYPE_HEADER) == 0)) + { + headers.emplace(Aws::Http::HeaderValuePair(Aws::Http::CONTENT_TYPE_HEADER, Aws::JSON_CONTENT_TYPE )); + } + headers.emplace(Aws::Http::HeaderValuePair(Aws::Http::API_VERSION_HEADER, "2018-05-10")); + return headers; + } + + protected: + virtual Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const { return Aws::Http::HeaderValueCollection(); } + + }; + + +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminServiceClientModel.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminServiceClientModel.h new file mode 100644 index 00000000000..65831695706 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdminServiceClientModel.h @@ -0,0 +1,120 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once + +/* Generic header includes */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* End of generic header includes */ + +/* Service model headers required in ObservabilityAdminClient header */ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* End of service model headers required in ObservabilityAdminClient header */ + +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 ObservabilityAdmin + { + using ObservabilityAdminClientConfiguration = Aws::Client::GenericClientConfiguration; + using ObservabilityAdminEndpointProviderBase = Aws::ObservabilityAdmin::Endpoint::ObservabilityAdminEndpointProviderBase; + using ObservabilityAdminEndpointProvider = Aws::ObservabilityAdmin::Endpoint::ObservabilityAdminEndpointProvider; + + namespace Model + { + /* Service model forward declarations required in ObservabilityAdminClient header */ + class GetTelemetryEvaluationStatusRequest; + class GetTelemetryEvaluationStatusForOrganizationRequest; + class ListResourceTelemetryRequest; + class ListResourceTelemetryForOrganizationRequest; + class StartTelemetryEvaluationRequest; + class StartTelemetryEvaluationForOrganizationRequest; + class StopTelemetryEvaluationRequest; + class StopTelemetryEvaluationForOrganizationRequest; + /* End of service model forward declarations required in ObservabilityAdminClient header */ + + /* Service model Outcome class definitions */ + typedef Aws::Utils::Outcome GetTelemetryEvaluationStatusOutcome; + typedef Aws::Utils::Outcome GetTelemetryEvaluationStatusForOrganizationOutcome; + typedef Aws::Utils::Outcome ListResourceTelemetryOutcome; + typedef Aws::Utils::Outcome ListResourceTelemetryForOrganizationOutcome; + typedef Aws::Utils::Outcome StartTelemetryEvaluationOutcome; + typedef Aws::Utils::Outcome StartTelemetryEvaluationForOrganizationOutcome; + typedef Aws::Utils::Outcome StopTelemetryEvaluationOutcome; + typedef Aws::Utils::Outcome StopTelemetryEvaluationForOrganizationOutcome; + /* End of service model Outcome class definitions */ + + /* Service model Outcome callable definitions */ + typedef std::future GetTelemetryEvaluationStatusOutcomeCallable; + typedef std::future GetTelemetryEvaluationStatusForOrganizationOutcomeCallable; + typedef std::future ListResourceTelemetryOutcomeCallable; + typedef std::future ListResourceTelemetryForOrganizationOutcomeCallable; + typedef std::future StartTelemetryEvaluationOutcomeCallable; + typedef std::future StartTelemetryEvaluationForOrganizationOutcomeCallable; + typedef std::future StopTelemetryEvaluationOutcomeCallable; + typedef std::future StopTelemetryEvaluationForOrganizationOutcomeCallable; + /* End of service model Outcome callable definitions */ + } // namespace Model + + class ObservabilityAdminClient; + + /* Service model async handlers definitions */ + typedef std::function&) > GetTelemetryEvaluationStatusResponseReceivedHandler; + typedef std::function&) > GetTelemetryEvaluationStatusForOrganizationResponseReceivedHandler; + typedef std::function&) > ListResourceTelemetryResponseReceivedHandler; + typedef std::function&) > ListResourceTelemetryForOrganizationResponseReceivedHandler; + typedef std::function&) > StartTelemetryEvaluationResponseReceivedHandler; + typedef std::function&) > StartTelemetryEvaluationForOrganizationResponseReceivedHandler; + typedef std::function&) > StopTelemetryEvaluationResponseReceivedHandler; + typedef std::function&) > StopTelemetryEvaluationForOrganizationResponseReceivedHandler; + /* End of service model async handlers definitions */ + } // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdmin_EXPORTS.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdmin_EXPORTS.h new file mode 100644 index 00000000000..f58cc9a31e9 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/ObservabilityAdmin_EXPORTS.h @@ -0,0 +1,32 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once + +#ifdef _MSC_VER + //disable windows complaining about max template size. + #pragma warning (disable : 4503) +#endif // _MSC_VER + +#if defined (USE_WINDOWS_DLL_SEMANTICS) || defined (_WIN32) + #ifdef _MSC_VER + #pragma warning(disable : 4251) + #endif // _MSC_VER + + #ifdef USE_IMPORT_EXPORT + #ifdef AWS_OBSERVABILITYADMIN_EXPORTS + #define AWS_OBSERVABILITYADMIN_API __declspec(dllexport) + #else + #define AWS_OBSERVABILITYADMIN_API __declspec(dllimport) + #endif /* AWS_OBSERVABILITYADMIN_EXPORTS */ + #define AWS_OBSERVABILITYADMIN_EXTERN + #else + #define AWS_OBSERVABILITYADMIN_API + #define AWS_OBSERVABILITYADMIN_EXTERN extern + #endif // USE_IMPORT_EXPORT +#else // defined (USE_WINDOWS_DLL_SEMANTICS) || defined (WIN32) + #define AWS_OBSERVABILITYADMIN_API + #define AWS_OBSERVABILITYADMIN_EXTERN extern +#endif // defined (USE_WINDOWS_DLL_SEMANTICS) || defined (WIN32) diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/AccessDeniedException.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/AccessDeniedException.h new file mode 100644 index 00000000000..56a3ac1b98a --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/AccessDeniedException.h @@ -0,0 +1,81 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + *

    Indicates you don't have permissions to perform the requested operation. The + * user or role that is making the request must have at least one IAM permissions + * policy attached that grants the required permissions. For more information, see + * Access + * management for AWS resources in the IAM user guide.

    See + * Also:

    AWS + * API Reference

    + */ + class AccessDeniedException + { + public: + AWS_OBSERVABILITYADMIN_API AccessDeniedException(); + AWS_OBSERVABILITYADMIN_API AccessDeniedException(Aws::Utils::Json::JsonView jsonValue); + AWS_OBSERVABILITYADMIN_API AccessDeniedException& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_OBSERVABILITYADMIN_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + + inline const Aws::String& GetMessage() const{ return m_message; } + inline bool MessageHasBeenSet() const { return m_messageHasBeenSet; } + inline void SetMessage(const Aws::String& value) { m_messageHasBeenSet = true; m_message = value; } + inline void SetMessage(Aws::String&& value) { m_messageHasBeenSet = true; m_message = std::move(value); } + inline void SetMessage(const char* value) { m_messageHasBeenSet = true; m_message.assign(value); } + inline AccessDeniedException& WithMessage(const Aws::String& value) { SetMessage(value); return *this;} + inline AccessDeniedException& WithMessage(Aws::String&& value) { SetMessage(std::move(value)); return *this;} + inline AccessDeniedException& WithMessage(const char* value) { SetMessage(value); return *this;} + ///@} + + ///@{ + /** + *

    The name of the exception.

    + */ + inline const Aws::String& GetAmznErrorType() const{ return m_amznErrorType; } + inline bool AmznErrorTypeHasBeenSet() const { return m_amznErrorTypeHasBeenSet; } + inline void SetAmznErrorType(const Aws::String& value) { m_amznErrorTypeHasBeenSet = true; m_amznErrorType = value; } + inline void SetAmznErrorType(Aws::String&& value) { m_amznErrorTypeHasBeenSet = true; m_amznErrorType = std::move(value); } + inline void SetAmznErrorType(const char* value) { m_amznErrorTypeHasBeenSet = true; m_amznErrorType.assign(value); } + inline AccessDeniedException& WithAmznErrorType(const Aws::String& value) { SetAmznErrorType(value); return *this;} + inline AccessDeniedException& WithAmznErrorType(Aws::String&& value) { SetAmznErrorType(std::move(value)); return *this;} + inline AccessDeniedException& WithAmznErrorType(const char* value) { SetAmznErrorType(value); return *this;} + ///@} + private: + + Aws::String m_message; + bool m_messageHasBeenSet = false; + + Aws::String m_amznErrorType; + bool m_amznErrorTypeHasBeenSet = false; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusForOrganizationRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusForOrganizationRequest.h new file mode 100644 index 00000000000..504537e3e45 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusForOrganizationRequest.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class GetTelemetryEvaluationStatusForOrganizationRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusForOrganizationRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "GetTelemetryEvaluationStatusForOrganization"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusForOrganizationResult.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusForOrganizationResult.h new file mode 100644 index 00000000000..62f67fd42cd --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusForOrganizationResult.h @@ -0,0 +1,84 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + class GetTelemetryEvaluationStatusForOrganizationResult + { + public: + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusForOrganizationResult(); + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusForOrganizationResult(const Aws::AmazonWebServiceResult& result); + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusForOrganizationResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

    The onboarding status of the telemetry config feature for the organization. + *

    + */ + inline const Status& GetStatus() const{ return m_status; } + inline void SetStatus(const Status& value) { m_status = value; } + inline void SetStatus(Status&& value) { m_status = std::move(value); } + inline GetTelemetryEvaluationStatusForOrganizationResult& WithStatus(const Status& value) { SetStatus(value); return *this;} + inline GetTelemetryEvaluationStatusForOrganizationResult& WithStatus(Status&& value) { SetStatus(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

    This field describes the reason for the failure status. The field will only + * be populated if Status is FAILED_START or + * FAILED_STOP.

    + */ + inline const Aws::String& GetFailureReason() const{ return m_failureReason; } + inline void SetFailureReason(const Aws::String& value) { m_failureReason = value; } + inline void SetFailureReason(Aws::String&& value) { m_failureReason = std::move(value); } + inline void SetFailureReason(const char* value) { m_failureReason.assign(value); } + inline GetTelemetryEvaluationStatusForOrganizationResult& WithFailureReason(const Aws::String& value) { SetFailureReason(value); return *this;} + inline GetTelemetryEvaluationStatusForOrganizationResult& WithFailureReason(Aws::String&& value) { SetFailureReason(std::move(value)); return *this;} + inline GetTelemetryEvaluationStatusForOrganizationResult& WithFailureReason(const char* value) { SetFailureReason(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline GetTelemetryEvaluationStatusForOrganizationResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline GetTelemetryEvaluationStatusForOrganizationResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline GetTelemetryEvaluationStatusForOrganizationResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Status m_status; + + Aws::String m_failureReason; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusRequest.h new file mode 100644 index 00000000000..8d54837b6f4 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusRequest.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class GetTelemetryEvaluationStatusRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "GetTelemetryEvaluationStatus"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusResult.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusResult.h new file mode 100644 index 00000000000..f7d5288e22d --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/GetTelemetryEvaluationStatusResult.h @@ -0,0 +1,83 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + class GetTelemetryEvaluationStatusResult + { + public: + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusResult(); + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusResult(const Aws::AmazonWebServiceResult& result); + AWS_OBSERVABILITYADMIN_API GetTelemetryEvaluationStatusResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

    The onboarding status of the telemetry config feature.

    + */ + inline const Status& GetStatus() const{ return m_status; } + inline void SetStatus(const Status& value) { m_status = value; } + inline void SetStatus(Status&& value) { m_status = std::move(value); } + inline GetTelemetryEvaluationStatusResult& WithStatus(const Status& value) { SetStatus(value); return *this;} + inline GetTelemetryEvaluationStatusResult& WithStatus(Status&& value) { SetStatus(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

    Describes the reason for the failure status. The field will only be + * populated if Status is FAILED_START or + * FAILED_STOP.

    + */ + inline const Aws::String& GetFailureReason() const{ return m_failureReason; } + inline void SetFailureReason(const Aws::String& value) { m_failureReason = value; } + inline void SetFailureReason(Aws::String&& value) { m_failureReason = std::move(value); } + inline void SetFailureReason(const char* value) { m_failureReason.assign(value); } + inline GetTelemetryEvaluationStatusResult& WithFailureReason(const Aws::String& value) { SetFailureReason(value); return *this;} + inline GetTelemetryEvaluationStatusResult& WithFailureReason(Aws::String&& value) { SetFailureReason(std::move(value)); return *this;} + inline GetTelemetryEvaluationStatusResult& WithFailureReason(const char* value) { SetFailureReason(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline GetTelemetryEvaluationStatusResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline GetTelemetryEvaluationStatusResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline GetTelemetryEvaluationStatusResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Status m_status; + + Aws::String m_failureReason; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/InternalServerException.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/InternalServerException.h new file mode 100644 index 00000000000..69cb227e1b2 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/InternalServerException.h @@ -0,0 +1,77 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + *

    Indicates the request has failed to process because of an unknown server + * error, exception, or failure.

    See Also:

    AWS + * API Reference

    + */ + class InternalServerException + { + public: + AWS_OBSERVABILITYADMIN_API InternalServerException(); + AWS_OBSERVABILITYADMIN_API InternalServerException(Aws::Utils::Json::JsonView jsonValue); + AWS_OBSERVABILITYADMIN_API InternalServerException& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_OBSERVABILITYADMIN_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + + inline const Aws::String& GetMessage() const{ return m_message; } + inline bool MessageHasBeenSet() const { return m_messageHasBeenSet; } + inline void SetMessage(const Aws::String& value) { m_messageHasBeenSet = true; m_message = value; } + inline void SetMessage(Aws::String&& value) { m_messageHasBeenSet = true; m_message = std::move(value); } + inline void SetMessage(const char* value) { m_messageHasBeenSet = true; m_message.assign(value); } + inline InternalServerException& WithMessage(const Aws::String& value) { SetMessage(value); return *this;} + inline InternalServerException& WithMessage(Aws::String&& value) { SetMessage(std::move(value)); return *this;} + inline InternalServerException& WithMessage(const char* value) { SetMessage(value); return *this;} + ///@} + + ///@{ + /** + *

    The name of the exception.

    + */ + inline const Aws::String& GetAmznErrorType() const{ return m_amznErrorType; } + inline bool AmznErrorTypeHasBeenSet() const { return m_amznErrorTypeHasBeenSet; } + inline void SetAmznErrorType(const Aws::String& value) { m_amznErrorTypeHasBeenSet = true; m_amznErrorType = value; } + inline void SetAmznErrorType(Aws::String&& value) { m_amznErrorTypeHasBeenSet = true; m_amznErrorType = std::move(value); } + inline void SetAmznErrorType(const char* value) { m_amznErrorTypeHasBeenSet = true; m_amznErrorType.assign(value); } + inline InternalServerException& WithAmznErrorType(const Aws::String& value) { SetAmznErrorType(value); return *this;} + inline InternalServerException& WithAmznErrorType(Aws::String&& value) { SetAmznErrorType(std::move(value)); return *this;} + inline InternalServerException& WithAmznErrorType(const char* value) { SetAmznErrorType(value); return *this;} + ///@} + private: + + Aws::String m_message; + bool m_messageHasBeenSet = false; + + Aws::String m_amznErrorType; + bool m_amznErrorTypeHasBeenSet = false; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryForOrganizationRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryForOrganizationRequest.h new file mode 100644 index 00000000000..b3f8727c6a6 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryForOrganizationRequest.h @@ -0,0 +1,179 @@ +/** + * 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 + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class ListResourceTelemetryForOrganizationRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryForOrganizationRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "ListResourceTelemetryForOrganization"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + + ///@{ + /** + *

    A list of AWS account IDs used to filter the resources to those associated + * with the specified accounts.

    + */ + inline const Aws::Vector& GetAccountIdentifiers() const{ return m_accountIdentifiers; } + inline bool AccountIdentifiersHasBeenSet() const { return m_accountIdentifiersHasBeenSet; } + inline void SetAccountIdentifiers(const Aws::Vector& value) { m_accountIdentifiersHasBeenSet = true; m_accountIdentifiers = value; } + inline void SetAccountIdentifiers(Aws::Vector&& value) { m_accountIdentifiersHasBeenSet = true; m_accountIdentifiers = std::move(value); } + inline ListResourceTelemetryForOrganizationRequest& WithAccountIdentifiers(const Aws::Vector& value) { SetAccountIdentifiers(value); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithAccountIdentifiers(Aws::Vector&& value) { SetAccountIdentifiers(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationRequest& AddAccountIdentifiers(const Aws::String& value) { m_accountIdentifiersHasBeenSet = true; m_accountIdentifiers.push_back(value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddAccountIdentifiers(Aws::String&& value) { m_accountIdentifiersHasBeenSet = true; m_accountIdentifiers.push_back(std::move(value)); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddAccountIdentifiers(const char* value) { m_accountIdentifiersHasBeenSet = true; m_accountIdentifiers.push_back(value); return *this; } + ///@} + + ///@{ + /** + *

    A string used to filter resources in the organization which have a + * ResourceIdentifier starting with the + * ResourceIdentifierPrefix.

    + */ + inline const Aws::String& GetResourceIdentifierPrefix() const{ return m_resourceIdentifierPrefix; } + inline bool ResourceIdentifierPrefixHasBeenSet() const { return m_resourceIdentifierPrefixHasBeenSet; } + inline void SetResourceIdentifierPrefix(const Aws::String& value) { m_resourceIdentifierPrefixHasBeenSet = true; m_resourceIdentifierPrefix = value; } + inline void SetResourceIdentifierPrefix(Aws::String&& value) { m_resourceIdentifierPrefixHasBeenSet = true; m_resourceIdentifierPrefix = std::move(value); } + inline void SetResourceIdentifierPrefix(const char* value) { m_resourceIdentifierPrefixHasBeenSet = true; m_resourceIdentifierPrefix.assign(value); } + inline ListResourceTelemetryForOrganizationRequest& WithResourceIdentifierPrefix(const Aws::String& value) { SetResourceIdentifierPrefix(value); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithResourceIdentifierPrefix(Aws::String&& value) { SetResourceIdentifierPrefix(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithResourceIdentifierPrefix(const char* value) { SetResourceIdentifierPrefix(value); return *this;} + ///@} + + ///@{ + /** + *

    A list of resource types used to filter resources in the organization. If + * this parameter is provided, the resources will be returned in the same order + * used in the request.

    + */ + inline const Aws::Vector& GetResourceTypes() const{ return m_resourceTypes; } + inline bool ResourceTypesHasBeenSet() const { return m_resourceTypesHasBeenSet; } + inline void SetResourceTypes(const Aws::Vector& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = value; } + inline void SetResourceTypes(Aws::Vector&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = std::move(value); } + inline ListResourceTelemetryForOrganizationRequest& WithResourceTypes(const Aws::Vector& value) { SetResourceTypes(value); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithResourceTypes(Aws::Vector&& value) { SetResourceTypes(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationRequest& AddResourceTypes(const ResourceType& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTypes(ResourceType&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    A key-value pair to filter resources in the organization based on the + * telemetry type and the state of the telemetry configuration. The key is the + * telemetry type and the value is the state.

    + */ + inline const Aws::Map& GetTelemetryConfigurationState() const{ return m_telemetryConfigurationState; } + inline bool TelemetryConfigurationStateHasBeenSet() const { return m_telemetryConfigurationStateHasBeenSet; } + inline void SetTelemetryConfigurationState(const Aws::Map& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState = value; } + inline void SetTelemetryConfigurationState(Aws::Map&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState = std::move(value); } + inline ListResourceTelemetryForOrganizationRequest& WithTelemetryConfigurationState(const Aws::Map& value) { SetTelemetryConfigurationState(value); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithTelemetryConfigurationState(Aws::Map&& value) { SetTelemetryConfigurationState(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationRequest& AddTelemetryConfigurationState(const TelemetryType& key, const TelemetryState& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(key, value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddTelemetryConfigurationState(TelemetryType&& key, const TelemetryState& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(std::move(key), value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddTelemetryConfigurationState(const TelemetryType& key, TelemetryState&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(key, std::move(value)); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddTelemetryConfigurationState(TelemetryType&& key, TelemetryState&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(std::move(key), std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    A key-value pair to filter resources in the organization based on tags + * associated with the resource. Fore more information about tags, see What + * are tags?

    + */ + inline const Aws::Map& GetResourceTags() const{ return m_resourceTags; } + inline bool ResourceTagsHasBeenSet() const { return m_resourceTagsHasBeenSet; } + inline void SetResourceTags(const Aws::Map& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = value; } + inline void SetResourceTags(Aws::Map&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = std::move(value); } + inline ListResourceTelemetryForOrganizationRequest& WithResourceTags(const Aws::Map& value) { SetResourceTags(value); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithResourceTags(Aws::Map&& value) { SetResourceTags(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(const Aws::String& key, const Aws::String& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(Aws::String&& key, const Aws::String& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(const Aws::String& key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, std::move(value)); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(Aws::String&& key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), std::move(value)); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(const char* key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, std::move(value)); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(Aws::String&& key, const char* value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), value); return *this; } + inline ListResourceTelemetryForOrganizationRequest& AddResourceTags(const char* key, const char* value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, value); return *this; } + ///@} + + ///@{ + /** + *

    A number field used to limit the number of results within the returned list. + *

    + */ + inline int GetMaxResults() const{ return m_maxResults; } + inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } + inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } + inline ListResourceTelemetryForOrganizationRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;} + ///@} + + ///@{ + /** + *

    The token for the next set of items to return. A previous call provides this + * token.

    + */ + inline const Aws::String& GetNextToken() const{ return m_nextToken; } + inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; } + inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; } + inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); } + inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); } + inline ListResourceTelemetryForOrganizationRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;} + ///@} + private: + + Aws::Vector m_accountIdentifiers; + bool m_accountIdentifiersHasBeenSet = false; + + Aws::String m_resourceIdentifierPrefix; + bool m_resourceIdentifierPrefixHasBeenSet = false; + + Aws::Vector m_resourceTypes; + bool m_resourceTypesHasBeenSet = false; + + Aws::Map m_telemetryConfigurationState; + bool m_telemetryConfigurationStateHasBeenSet = false; + + Aws::Map m_resourceTags; + bool m_resourceTagsHasBeenSet = false; + + int m_maxResults; + bool m_maxResultsHasBeenSet = false; + + Aws::String m_nextToken; + bool m_nextTokenHasBeenSet = false; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryForOrganizationResult.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryForOrganizationResult.h new file mode 100644 index 00000000000..6593eea5283 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryForOrganizationResult.h @@ -0,0 +1,86 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + class ListResourceTelemetryForOrganizationResult + { + public: + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryForOrganizationResult(); + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryForOrganizationResult(const Aws::AmazonWebServiceResult& result); + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryForOrganizationResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

    A list of telemetry configurations for AWS resources supported by telemetry + * config in the organization.

    + */ + inline const Aws::Vector& GetTelemetryConfigurations() const{ return m_telemetryConfigurations; } + inline void SetTelemetryConfigurations(const Aws::Vector& value) { m_telemetryConfigurations = value; } + inline void SetTelemetryConfigurations(Aws::Vector&& value) { m_telemetryConfigurations = std::move(value); } + inline ListResourceTelemetryForOrganizationResult& WithTelemetryConfigurations(const Aws::Vector& value) { SetTelemetryConfigurations(value); return *this;} + inline ListResourceTelemetryForOrganizationResult& WithTelemetryConfigurations(Aws::Vector&& value) { SetTelemetryConfigurations(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationResult& AddTelemetryConfigurations(const TelemetryConfiguration& value) { m_telemetryConfigurations.push_back(value); return *this; } + inline ListResourceTelemetryForOrganizationResult& AddTelemetryConfigurations(TelemetryConfiguration&& value) { m_telemetryConfigurations.push_back(std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    The token for the next set of items to return. A previous call provides this + * token.

    + */ + inline const Aws::String& GetNextToken() const{ return m_nextToken; } + inline void SetNextToken(const Aws::String& value) { m_nextToken = value; } + inline void SetNextToken(Aws::String&& value) { m_nextToken = std::move(value); } + inline void SetNextToken(const char* value) { m_nextToken.assign(value); } + inline ListResourceTelemetryForOrganizationResult& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} + inline ListResourceTelemetryForOrganizationResult& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationResult& WithNextToken(const char* value) { SetNextToken(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline ListResourceTelemetryForOrganizationResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline ListResourceTelemetryForOrganizationResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline ListResourceTelemetryForOrganizationResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Aws::Vector m_telemetryConfigurations; + + Aws::String m_nextToken; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryRequest.h new file mode 100644 index 00000000000..8ff44c99cb9 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryRequest.h @@ -0,0 +1,160 @@ +/** + * 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 + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class ListResourceTelemetryRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "ListResourceTelemetry"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + + ///@{ + /** + *

    A string used to filter resources which have a + * ResourceIdentifier starting with the + * ResourceIdentifierPrefix.

    + */ + inline const Aws::String& GetResourceIdentifierPrefix() const{ return m_resourceIdentifierPrefix; } + inline bool ResourceIdentifierPrefixHasBeenSet() const { return m_resourceIdentifierPrefixHasBeenSet; } + inline void SetResourceIdentifierPrefix(const Aws::String& value) { m_resourceIdentifierPrefixHasBeenSet = true; m_resourceIdentifierPrefix = value; } + inline void SetResourceIdentifierPrefix(Aws::String&& value) { m_resourceIdentifierPrefixHasBeenSet = true; m_resourceIdentifierPrefix = std::move(value); } + inline void SetResourceIdentifierPrefix(const char* value) { m_resourceIdentifierPrefixHasBeenSet = true; m_resourceIdentifierPrefix.assign(value); } + inline ListResourceTelemetryRequest& WithResourceIdentifierPrefix(const Aws::String& value) { SetResourceIdentifierPrefix(value); return *this;} + inline ListResourceTelemetryRequest& WithResourceIdentifierPrefix(Aws::String&& value) { SetResourceIdentifierPrefix(std::move(value)); return *this;} + inline ListResourceTelemetryRequest& WithResourceIdentifierPrefix(const char* value) { SetResourceIdentifierPrefix(value); return *this;} + ///@} + + ///@{ + /** + *

    A list of resource types used to filter resources supported by telemetry + * config. If this parameter is provided, the resources will be returned in the + * same order used in the request.

    + */ + inline const Aws::Vector& GetResourceTypes() const{ return m_resourceTypes; } + inline bool ResourceTypesHasBeenSet() const { return m_resourceTypesHasBeenSet; } + inline void SetResourceTypes(const Aws::Vector& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = value; } + inline void SetResourceTypes(Aws::Vector&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes = std::move(value); } + inline ListResourceTelemetryRequest& WithResourceTypes(const Aws::Vector& value) { SetResourceTypes(value); return *this;} + inline ListResourceTelemetryRequest& WithResourceTypes(Aws::Vector&& value) { SetResourceTypes(std::move(value)); return *this;} + inline ListResourceTelemetryRequest& AddResourceTypes(const ResourceType& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(value); return *this; } + inline ListResourceTelemetryRequest& AddResourceTypes(ResourceType&& value) { m_resourceTypesHasBeenSet = true; m_resourceTypes.push_back(std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    A key-value pair to filter resources based on the telemetry type and the + * state of the telemetry configuration. The key is the telemetry type and the + * value is the state.

    + */ + inline const Aws::Map& GetTelemetryConfigurationState() const{ return m_telemetryConfigurationState; } + inline bool TelemetryConfigurationStateHasBeenSet() const { return m_telemetryConfigurationStateHasBeenSet; } + inline void SetTelemetryConfigurationState(const Aws::Map& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState = value; } + inline void SetTelemetryConfigurationState(Aws::Map&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState = std::move(value); } + inline ListResourceTelemetryRequest& WithTelemetryConfigurationState(const Aws::Map& value) { SetTelemetryConfigurationState(value); return *this;} + inline ListResourceTelemetryRequest& WithTelemetryConfigurationState(Aws::Map&& value) { SetTelemetryConfigurationState(std::move(value)); return *this;} + inline ListResourceTelemetryRequest& AddTelemetryConfigurationState(const TelemetryType& key, const TelemetryState& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(key, value); return *this; } + inline ListResourceTelemetryRequest& AddTelemetryConfigurationState(TelemetryType&& key, const TelemetryState& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(std::move(key), value); return *this; } + inline ListResourceTelemetryRequest& AddTelemetryConfigurationState(const TelemetryType& key, TelemetryState&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(key, std::move(value)); return *this; } + inline ListResourceTelemetryRequest& AddTelemetryConfigurationState(TelemetryType&& key, TelemetryState&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(std::move(key), std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    A key-value pair to filter resources based on tags associated with the + * resource. For more information about tags, see What + * are tags?

    + */ + inline const Aws::Map& GetResourceTags() const{ return m_resourceTags; } + inline bool ResourceTagsHasBeenSet() const { return m_resourceTagsHasBeenSet; } + inline void SetResourceTags(const Aws::Map& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = value; } + inline void SetResourceTags(Aws::Map&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = std::move(value); } + inline ListResourceTelemetryRequest& WithResourceTags(const Aws::Map& value) { SetResourceTags(value); return *this;} + inline ListResourceTelemetryRequest& WithResourceTags(Aws::Map&& value) { SetResourceTags(std::move(value)); return *this;} + inline ListResourceTelemetryRequest& AddResourceTags(const Aws::String& key, const Aws::String& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, value); return *this; } + inline ListResourceTelemetryRequest& AddResourceTags(Aws::String&& key, const Aws::String& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), value); return *this; } + inline ListResourceTelemetryRequest& AddResourceTags(const Aws::String& key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, std::move(value)); return *this; } + inline ListResourceTelemetryRequest& AddResourceTags(Aws::String&& key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), std::move(value)); return *this; } + inline ListResourceTelemetryRequest& AddResourceTags(const char* key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, std::move(value)); return *this; } + inline ListResourceTelemetryRequest& AddResourceTags(Aws::String&& key, const char* value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), value); return *this; } + inline ListResourceTelemetryRequest& AddResourceTags(const char* key, const char* value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, value); return *this; } + ///@} + + ///@{ + /** + *

    A number field used to limit the number of results within the returned list. + *

    + */ + inline int GetMaxResults() const{ return m_maxResults; } + inline bool MaxResultsHasBeenSet() const { return m_maxResultsHasBeenSet; } + inline void SetMaxResults(int value) { m_maxResultsHasBeenSet = true; m_maxResults = value; } + inline ListResourceTelemetryRequest& WithMaxResults(int value) { SetMaxResults(value); return *this;} + ///@} + + ///@{ + /** + *

    The token for the next set of items to return. A previous call generates + * this token.

    + */ + inline const Aws::String& GetNextToken() const{ return m_nextToken; } + inline bool NextTokenHasBeenSet() const { return m_nextTokenHasBeenSet; } + inline void SetNextToken(const Aws::String& value) { m_nextTokenHasBeenSet = true; m_nextToken = value; } + inline void SetNextToken(Aws::String&& value) { m_nextTokenHasBeenSet = true; m_nextToken = std::move(value); } + inline void SetNextToken(const char* value) { m_nextTokenHasBeenSet = true; m_nextToken.assign(value); } + inline ListResourceTelemetryRequest& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} + inline ListResourceTelemetryRequest& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} + inline ListResourceTelemetryRequest& WithNextToken(const char* value) { SetNextToken(value); return *this;} + ///@} + private: + + Aws::String m_resourceIdentifierPrefix; + bool m_resourceIdentifierPrefixHasBeenSet = false; + + Aws::Vector m_resourceTypes; + bool m_resourceTypesHasBeenSet = false; + + Aws::Map m_telemetryConfigurationState; + bool m_telemetryConfigurationStateHasBeenSet = false; + + Aws::Map m_resourceTags; + bool m_resourceTagsHasBeenSet = false; + + int m_maxResults; + bool m_maxResultsHasBeenSet = false; + + Aws::String m_nextToken; + bool m_nextTokenHasBeenSet = false; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryResult.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryResult.h new file mode 100644 index 00000000000..a73997bc222 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ListResourceTelemetryResult.h @@ -0,0 +1,86 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include +#include +#include +#include + +namespace Aws +{ +template +class AmazonWebServiceResult; + +namespace Utils +{ +namespace Json +{ + class JsonValue; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + class ListResourceTelemetryResult + { + public: + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryResult(); + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryResult(const Aws::AmazonWebServiceResult& result); + AWS_OBSERVABILITYADMIN_API ListResourceTelemetryResult& operator=(const Aws::AmazonWebServiceResult& result); + + + ///@{ + /** + *

    A list of telemetry configurations for AWS resources supported by telemetry + * config in the caller's account.

    + */ + inline const Aws::Vector& GetTelemetryConfigurations() const{ return m_telemetryConfigurations; } + inline void SetTelemetryConfigurations(const Aws::Vector& value) { m_telemetryConfigurations = value; } + inline void SetTelemetryConfigurations(Aws::Vector&& value) { m_telemetryConfigurations = std::move(value); } + inline ListResourceTelemetryResult& WithTelemetryConfigurations(const Aws::Vector& value) { SetTelemetryConfigurations(value); return *this;} + inline ListResourceTelemetryResult& WithTelemetryConfigurations(Aws::Vector&& value) { SetTelemetryConfigurations(std::move(value)); return *this;} + inline ListResourceTelemetryResult& AddTelemetryConfigurations(const TelemetryConfiguration& value) { m_telemetryConfigurations.push_back(value); return *this; } + inline ListResourceTelemetryResult& AddTelemetryConfigurations(TelemetryConfiguration&& value) { m_telemetryConfigurations.push_back(std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    The token for the next set of items to return. A previous call generates + * this token.

    + */ + inline const Aws::String& GetNextToken() const{ return m_nextToken; } + inline void SetNextToken(const Aws::String& value) { m_nextToken = value; } + inline void SetNextToken(Aws::String&& value) { m_nextToken = std::move(value); } + inline void SetNextToken(const char* value) { m_nextToken.assign(value); } + inline ListResourceTelemetryResult& WithNextToken(const Aws::String& value) { SetNextToken(value); return *this;} + inline ListResourceTelemetryResult& WithNextToken(Aws::String&& value) { SetNextToken(std::move(value)); return *this;} + inline ListResourceTelemetryResult& WithNextToken(const char* value) { SetNextToken(value); return *this;} + ///@} + + ///@{ + + inline const Aws::String& GetRequestId() const{ return m_requestId; } + inline void SetRequestId(const Aws::String& value) { m_requestId = value; } + inline void SetRequestId(Aws::String&& value) { m_requestId = std::move(value); } + inline void SetRequestId(const char* value) { m_requestId.assign(value); } + inline ListResourceTelemetryResult& WithRequestId(const Aws::String& value) { SetRequestId(value); return *this;} + inline ListResourceTelemetryResult& WithRequestId(Aws::String&& value) { SetRequestId(std::move(value)); return *this;} + inline ListResourceTelemetryResult& WithRequestId(const char* value) { SetRequestId(value); return *this;} + ///@} + private: + + Aws::Vector m_telemetryConfigurations; + + Aws::String m_nextToken; + + Aws::String m_requestId; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ResourceType.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ResourceType.h new file mode 100644 index 00000000000..4a22c669b8b --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/ResourceType.h @@ -0,0 +1,32 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + enum class ResourceType + { + NOT_SET, + AWS_EC2_Instance, + AWS_EC2_VPC, + AWS_Lambda_Function + }; + +namespace ResourceTypeMapper +{ +AWS_OBSERVABILITYADMIN_API ResourceType GetResourceTypeForName(const Aws::String& name); + +AWS_OBSERVABILITYADMIN_API Aws::String GetNameForResourceType(ResourceType value); +} // namespace ResourceTypeMapper +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StartTelemetryEvaluationForOrganizationRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StartTelemetryEvaluationForOrganizationRequest.h new file mode 100644 index 00000000000..614b9eae01c --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StartTelemetryEvaluationForOrganizationRequest.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class StartTelemetryEvaluationForOrganizationRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API StartTelemetryEvaluationForOrganizationRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "StartTelemetryEvaluationForOrganization"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StartTelemetryEvaluationRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StartTelemetryEvaluationRequest.h new file mode 100644 index 00000000000..2be04bfc912 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StartTelemetryEvaluationRequest.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class StartTelemetryEvaluationRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API StartTelemetryEvaluationRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "StartTelemetryEvaluation"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/Status.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/Status.h new file mode 100644 index 00000000000..31024e7f521 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/Status.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + enum class Status + { + NOT_SET, + NOT_STARTED, + STARTING, + FAILED_START, + RUNNING, + STOPPING, + FAILED_STOP, + STOPPED + }; + +namespace StatusMapper +{ +AWS_OBSERVABILITYADMIN_API Status GetStatusForName(const Aws::String& name); + +AWS_OBSERVABILITYADMIN_API Aws::String GetNameForStatus(Status value); +} // namespace StatusMapper +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StopTelemetryEvaluationForOrganizationRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StopTelemetryEvaluationForOrganizationRequest.h new file mode 100644 index 00000000000..217501b8b0c --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StopTelemetryEvaluationForOrganizationRequest.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class StopTelemetryEvaluationForOrganizationRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API StopTelemetryEvaluationForOrganizationRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "StopTelemetryEvaluationForOrganization"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StopTelemetryEvaluationRequest.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StopTelemetryEvaluationRequest.h new file mode 100644 index 00000000000..c2570a7366e --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/StopTelemetryEvaluationRequest.h @@ -0,0 +1,36 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + */ + class StopTelemetryEvaluationRequest : public ObservabilityAdminRequest + { + public: + AWS_OBSERVABILITYADMIN_API StopTelemetryEvaluationRequest(); + + // Service request name is the Operation name which will send this request out, + // each operation should has unique request name, so that we can get operation's name from this request. + // Note: this is not true for response, multiple operations may have the same response name, + // so we can not get operation's name from response. + inline virtual const char* GetServiceRequestName() const override { return "StopTelemetryEvaluation"; } + + AWS_OBSERVABILITYADMIN_API Aws::String SerializePayload() const override; + + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryConfiguration.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryConfiguration.h new file mode 100644 index 00000000000..65e459d13d2 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryConfiguration.h @@ -0,0 +1,158 @@ +/** + * 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 + +namespace Aws +{ +namespace Utils +{ +namespace Json +{ + class JsonValue; + class JsonView; +} // namespace Json +} // namespace Utils +namespace ObservabilityAdmin +{ +namespace Model +{ + + /** + *

    A model representing the state of a resource within an account according to + * telemetry config.

    See Also:

    AWS + * API Reference

    + */ + class TelemetryConfiguration + { + public: + AWS_OBSERVABILITYADMIN_API TelemetryConfiguration(); + AWS_OBSERVABILITYADMIN_API TelemetryConfiguration(Aws::Utils::Json::JsonView jsonValue); + AWS_OBSERVABILITYADMIN_API TelemetryConfiguration& operator=(Aws::Utils::Json::JsonView jsonValue); + AWS_OBSERVABILITYADMIN_API Aws::Utils::Json::JsonValue Jsonize() const; + + + ///@{ + /** + *

    The account ID which contains the resource managed in telemetry + * configuration. An example of a valid account ID is 012345678901. + *

    + */ + inline const Aws::String& GetAccountIdentifier() const{ return m_accountIdentifier; } + inline bool AccountIdentifierHasBeenSet() const { return m_accountIdentifierHasBeenSet; } + inline void SetAccountIdentifier(const Aws::String& value) { m_accountIdentifierHasBeenSet = true; m_accountIdentifier = value; } + inline void SetAccountIdentifier(Aws::String&& value) { m_accountIdentifierHasBeenSet = true; m_accountIdentifier = std::move(value); } + inline void SetAccountIdentifier(const char* value) { m_accountIdentifierHasBeenSet = true; m_accountIdentifier.assign(value); } + inline TelemetryConfiguration& WithAccountIdentifier(const Aws::String& value) { SetAccountIdentifier(value); return *this;} + inline TelemetryConfiguration& WithAccountIdentifier(Aws::String&& value) { SetAccountIdentifier(std::move(value)); return *this;} + inline TelemetryConfiguration& WithAccountIdentifier(const char* value) { SetAccountIdentifier(value); return *this;} + ///@} + + ///@{ + /** + *

    The configuration state for the resource, for example { Logs: + * NotApplicable; Metrics: Enabled; Traces: NotApplicable; }.

    + */ + inline const Aws::Map& GetTelemetryConfigurationState() const{ return m_telemetryConfigurationState; } + inline bool TelemetryConfigurationStateHasBeenSet() const { return m_telemetryConfigurationStateHasBeenSet; } + inline void SetTelemetryConfigurationState(const Aws::Map& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState = value; } + inline void SetTelemetryConfigurationState(Aws::Map&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState = std::move(value); } + inline TelemetryConfiguration& WithTelemetryConfigurationState(const Aws::Map& value) { SetTelemetryConfigurationState(value); return *this;} + inline TelemetryConfiguration& WithTelemetryConfigurationState(Aws::Map&& value) { SetTelemetryConfigurationState(std::move(value)); return *this;} + inline TelemetryConfiguration& AddTelemetryConfigurationState(const TelemetryType& key, const TelemetryState& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(key, value); return *this; } + inline TelemetryConfiguration& AddTelemetryConfigurationState(TelemetryType&& key, const TelemetryState& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(std::move(key), value); return *this; } + inline TelemetryConfiguration& AddTelemetryConfigurationState(const TelemetryType& key, TelemetryState&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(key, std::move(value)); return *this; } + inline TelemetryConfiguration& AddTelemetryConfigurationState(TelemetryType&& key, TelemetryState&& value) { m_telemetryConfigurationStateHasBeenSet = true; m_telemetryConfigurationState.emplace(std::move(key), std::move(value)); return *this; } + ///@} + + ///@{ + /** + *

    The type of resource, for example AWS::EC2::Instance.

    + */ + inline const ResourceType& GetResourceType() const{ return m_resourceType; } + inline bool ResourceTypeHasBeenSet() const { return m_resourceTypeHasBeenSet; } + inline void SetResourceType(const ResourceType& value) { m_resourceTypeHasBeenSet = true; m_resourceType = value; } + inline void SetResourceType(ResourceType&& value) { m_resourceTypeHasBeenSet = true; m_resourceType = std::move(value); } + inline TelemetryConfiguration& WithResourceType(const ResourceType& value) { SetResourceType(value); return *this;} + inline TelemetryConfiguration& WithResourceType(ResourceType&& value) { SetResourceType(std::move(value)); return *this;} + ///@} + + ///@{ + /** + *

    The identifier of the resource, for example + * i-0b22a22eec53b9321.

    + */ + inline const Aws::String& GetResourceIdentifier() const{ return m_resourceIdentifier; } + inline bool ResourceIdentifierHasBeenSet() const { return m_resourceIdentifierHasBeenSet; } + inline void SetResourceIdentifier(const Aws::String& value) { m_resourceIdentifierHasBeenSet = true; m_resourceIdentifier = value; } + inline void SetResourceIdentifier(Aws::String&& value) { m_resourceIdentifierHasBeenSet = true; m_resourceIdentifier = std::move(value); } + inline void SetResourceIdentifier(const char* value) { m_resourceIdentifierHasBeenSet = true; m_resourceIdentifier.assign(value); } + inline TelemetryConfiguration& WithResourceIdentifier(const Aws::String& value) { SetResourceIdentifier(value); return *this;} + inline TelemetryConfiguration& WithResourceIdentifier(Aws::String&& value) { SetResourceIdentifier(std::move(value)); return *this;} + inline TelemetryConfiguration& WithResourceIdentifier(const char* value) { SetResourceIdentifier(value); return *this;} + ///@} + + ///@{ + /** + *

    Tags associated with the resource, for example { Name: + * "ExampleInstance", Environment: "Development" }.

    + */ + inline const Aws::Map& GetResourceTags() const{ return m_resourceTags; } + inline bool ResourceTagsHasBeenSet() const { return m_resourceTagsHasBeenSet; } + inline void SetResourceTags(const Aws::Map& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = value; } + inline void SetResourceTags(Aws::Map&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags = std::move(value); } + inline TelemetryConfiguration& WithResourceTags(const Aws::Map& value) { SetResourceTags(value); return *this;} + inline TelemetryConfiguration& WithResourceTags(Aws::Map&& value) { SetResourceTags(std::move(value)); return *this;} + inline TelemetryConfiguration& AddResourceTags(const Aws::String& key, const Aws::String& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, value); return *this; } + inline TelemetryConfiguration& AddResourceTags(Aws::String&& key, const Aws::String& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), value); return *this; } + inline TelemetryConfiguration& AddResourceTags(const Aws::String& key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, std::move(value)); return *this; } + inline TelemetryConfiguration& AddResourceTags(Aws::String&& key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), std::move(value)); return *this; } + inline TelemetryConfiguration& AddResourceTags(const char* key, Aws::String&& value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, std::move(value)); return *this; } + inline TelemetryConfiguration& AddResourceTags(Aws::String&& key, const char* value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(std::move(key), value); return *this; } + inline TelemetryConfiguration& AddResourceTags(const char* key, const char* value) { m_resourceTagsHasBeenSet = true; m_resourceTags.emplace(key, value); return *this; } + ///@} + + ///@{ + /** + *

    The timestamp of the last change to the telemetry configuration for the + * resource. For example, 1728679196318.

    + */ + inline long long GetLastUpdateTimeStamp() const{ return m_lastUpdateTimeStamp; } + inline bool LastUpdateTimeStampHasBeenSet() const { return m_lastUpdateTimeStampHasBeenSet; } + inline void SetLastUpdateTimeStamp(long long value) { m_lastUpdateTimeStampHasBeenSet = true; m_lastUpdateTimeStamp = value; } + inline TelemetryConfiguration& WithLastUpdateTimeStamp(long long value) { SetLastUpdateTimeStamp(value); return *this;} + ///@} + private: + + Aws::String m_accountIdentifier; + bool m_accountIdentifierHasBeenSet = false; + + Aws::Map m_telemetryConfigurationState; + bool m_telemetryConfigurationStateHasBeenSet = false; + + ResourceType m_resourceType; + bool m_resourceTypeHasBeenSet = false; + + Aws::String m_resourceIdentifier; + bool m_resourceIdentifierHasBeenSet = false; + + Aws::Map m_resourceTags; + bool m_resourceTagsHasBeenSet = false; + + long long m_lastUpdateTimeStamp; + bool m_lastUpdateTimeStampHasBeenSet = false; + }; + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryState.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryState.h new file mode 100644 index 00000000000..b85b13924f7 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryState.h @@ -0,0 +1,32 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + enum class TelemetryState + { + NOT_SET, + Enabled, + Disabled, + NotApplicable + }; + +namespace TelemetryStateMapper +{ +AWS_OBSERVABILITYADMIN_API TelemetryState GetTelemetryStateForName(const Aws::String& name); + +AWS_OBSERVABILITYADMIN_API Aws::String GetNameForTelemetryState(TelemetryState value); +} // namespace TelemetryStateMapper +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryType.h b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryType.h new file mode 100644 index 00000000000..5d87bd84756 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/include/aws/observabilityadmin/model/TelemetryType.h @@ -0,0 +1,32 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#pragma once +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + enum class TelemetryType + { + NOT_SET, + Logs, + Metrics, + Traces + }; + +namespace TelemetryTypeMapper +{ +AWS_OBSERVABILITYADMIN_API TelemetryType GetTelemetryTypeForName(const Aws::String& name); + +AWS_OBSERVABILITYADMIN_API Aws::String GetNameForTelemetryType(TelemetryType value); +} // namespace TelemetryTypeMapper +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminClient.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminClient.cpp new file mode 100644 index 00000000000..f6f2d37ae09 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminClient.cpp @@ -0,0 +1,390 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include + + +using namespace Aws; +using namespace Aws::Auth; +using namespace Aws::Client; +using namespace Aws::ObservabilityAdmin; +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Http; +using namespace Aws::Utils::Json; +using namespace smithy::components::tracing; +using ResolveEndpointOutcome = Aws::Endpoint::ResolveEndpointOutcome; + +namespace Aws +{ + namespace ObservabilityAdmin + { + const char SERVICE_NAME[] = "observabilityadmin"; + const char ALLOCATION_TAG[] = "ObservabilityAdminClient"; + } +} +const char* ObservabilityAdminClient::GetServiceName() {return SERVICE_NAME;} +const char* ObservabilityAdminClient::GetAllocationTag() {return ALLOCATION_TAG;} + +ObservabilityAdminClient::ObservabilityAdminClient(const ObservabilityAdmin::ObservabilityAdminClientConfiguration& clientConfiguration, + std::shared_ptr endpointProvider) : + BASECLASS(clientConfiguration, + Aws::MakeShared(ALLOCATION_TAG, + Aws::MakeShared(ALLOCATION_TAG), + SERVICE_NAME, + Aws::Region::ComputeSignerRegion(clientConfiguration.region)), + Aws::MakeShared(ALLOCATION_TAG)), + m_clientConfiguration(clientConfiguration), + m_endpointProvider(endpointProvider ? std::move(endpointProvider) : Aws::MakeShared(ALLOCATION_TAG)) +{ + init(m_clientConfiguration); +} + +ObservabilityAdminClient::ObservabilityAdminClient(const AWSCredentials& credentials, + std::shared_ptr endpointProvider, + const ObservabilityAdmin::ObservabilityAdminClientConfiguration& clientConfiguration) : + BASECLASS(clientConfiguration, + Aws::MakeShared(ALLOCATION_TAG, + Aws::MakeShared(ALLOCATION_TAG, credentials), + SERVICE_NAME, + Aws::Region::ComputeSignerRegion(clientConfiguration.region)), + Aws::MakeShared(ALLOCATION_TAG)), + m_clientConfiguration(clientConfiguration), + m_endpointProvider(endpointProvider ? std::move(endpointProvider) : Aws::MakeShared(ALLOCATION_TAG)) +{ + init(m_clientConfiguration); +} + +ObservabilityAdminClient::ObservabilityAdminClient(const std::shared_ptr& credentialsProvider, + std::shared_ptr endpointProvider, + const ObservabilityAdmin::ObservabilityAdminClientConfiguration& clientConfiguration) : + BASECLASS(clientConfiguration, + Aws::MakeShared(ALLOCATION_TAG, + credentialsProvider, + SERVICE_NAME, + Aws::Region::ComputeSignerRegion(clientConfiguration.region)), + Aws::MakeShared(ALLOCATION_TAG)), + m_clientConfiguration(clientConfiguration), + m_endpointProvider(endpointProvider ? std::move(endpointProvider) : Aws::MakeShared(ALLOCATION_TAG)) +{ + init(m_clientConfiguration); +} + + /* Legacy constructors due deprecation */ + ObservabilityAdminClient::ObservabilityAdminClient(const Client::ClientConfiguration& clientConfiguration) : + BASECLASS(clientConfiguration, + Aws::MakeShared(ALLOCATION_TAG, + Aws::MakeShared(ALLOCATION_TAG), + SERVICE_NAME, + Aws::Region::ComputeSignerRegion(clientConfiguration.region)), + Aws::MakeShared(ALLOCATION_TAG)), + m_clientConfiguration(clientConfiguration), + m_endpointProvider(Aws::MakeShared(ALLOCATION_TAG)) +{ + init(m_clientConfiguration); +} + +ObservabilityAdminClient::ObservabilityAdminClient(const AWSCredentials& credentials, + const Client::ClientConfiguration& clientConfiguration) : + BASECLASS(clientConfiguration, + Aws::MakeShared(ALLOCATION_TAG, + Aws::MakeShared(ALLOCATION_TAG, credentials), + SERVICE_NAME, + Aws::Region::ComputeSignerRegion(clientConfiguration.region)), + Aws::MakeShared(ALLOCATION_TAG)), + m_clientConfiguration(clientConfiguration), + m_endpointProvider(Aws::MakeShared(ALLOCATION_TAG)) +{ + init(m_clientConfiguration); +} + +ObservabilityAdminClient::ObservabilityAdminClient(const std::shared_ptr& credentialsProvider, + const Client::ClientConfiguration& clientConfiguration) : + BASECLASS(clientConfiguration, + Aws::MakeShared(ALLOCATION_TAG, + credentialsProvider, + SERVICE_NAME, + Aws::Region::ComputeSignerRegion(clientConfiguration.region)), + Aws::MakeShared(ALLOCATION_TAG)), + m_clientConfiguration(clientConfiguration), + m_endpointProvider(Aws::MakeShared(ALLOCATION_TAG)) +{ + init(m_clientConfiguration); +} + + /* End of legacy constructors due deprecation */ +ObservabilityAdminClient::~ObservabilityAdminClient() +{ + ShutdownSdkClient(this, -1); +} + +std::shared_ptr& ObservabilityAdminClient::accessEndpointProvider() +{ + return m_endpointProvider; +} + +void ObservabilityAdminClient::init(const ObservabilityAdmin::ObservabilityAdminClientConfiguration& config) +{ + AWSClient::SetServiceClientName("ObservabilityAdmin"); + if (!m_clientConfiguration.executor) { + if (!m_clientConfiguration.configFactories.executorCreateFn()) { + AWS_LOGSTREAM_FATAL(ALLOCATION_TAG, "Failed to initialize client: config is missing Executor or executorCreateFn"); + m_isInitialized = false; + return; + } + m_clientConfiguration.executor = m_clientConfiguration.configFactories.executorCreateFn(); + } + AWS_CHECK_PTR(SERVICE_NAME, m_endpointProvider); + m_endpointProvider->InitBuiltInParameters(config); +} + +void ObservabilityAdminClient::OverrideEndpoint(const Aws::String& endpoint) +{ + AWS_CHECK_PTR(SERVICE_NAME, m_endpointProvider); + m_endpointProvider->OverrideEndpoint(endpoint); +} + +GetTelemetryEvaluationStatusOutcome ObservabilityAdminClient::GetTelemetryEvaluationStatus(const GetTelemetryEvaluationStatusRequest& request) const +{ + AWS_OPERATION_GUARD(GetTelemetryEvaluationStatus); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetTelemetryEvaluationStatus, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, GetTelemetryEvaluationStatus, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, GetTelemetryEvaluationStatus, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".GetTelemetryEvaluationStatus", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> GetTelemetryEvaluationStatusOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetTelemetryEvaluationStatus, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/GetTelemetryEvaluationStatus"); + return GetTelemetryEvaluationStatusOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +GetTelemetryEvaluationStatusForOrganizationOutcome ObservabilityAdminClient::GetTelemetryEvaluationStatusForOrganization(const GetTelemetryEvaluationStatusForOrganizationRequest& request) const +{ + AWS_OPERATION_GUARD(GetTelemetryEvaluationStatusForOrganization); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, GetTelemetryEvaluationStatusForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, GetTelemetryEvaluationStatusForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, GetTelemetryEvaluationStatusForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".GetTelemetryEvaluationStatusForOrganization", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> GetTelemetryEvaluationStatusForOrganizationOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, GetTelemetryEvaluationStatusForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/GetTelemetryEvaluationStatusForOrganization"); + return GetTelemetryEvaluationStatusForOrganizationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +ListResourceTelemetryOutcome ObservabilityAdminClient::ListResourceTelemetry(const ListResourceTelemetryRequest& request) const +{ + AWS_OPERATION_GUARD(ListResourceTelemetry); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListResourceTelemetry, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, ListResourceTelemetry, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, ListResourceTelemetry, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".ListResourceTelemetry", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> ListResourceTelemetryOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListResourceTelemetry, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/ListResourceTelemetry"); + return ListResourceTelemetryOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +ListResourceTelemetryForOrganizationOutcome ObservabilityAdminClient::ListResourceTelemetryForOrganization(const ListResourceTelemetryForOrganizationRequest& request) const +{ + AWS_OPERATION_GUARD(ListResourceTelemetryForOrganization); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, ListResourceTelemetryForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, ListResourceTelemetryForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, ListResourceTelemetryForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".ListResourceTelemetryForOrganization", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> ListResourceTelemetryForOrganizationOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, ListResourceTelemetryForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/ListResourceTelemetryForOrganization"); + return ListResourceTelemetryForOrganizationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +StartTelemetryEvaluationOutcome ObservabilityAdminClient::StartTelemetryEvaluation(const StartTelemetryEvaluationRequest& request) const +{ + AWS_OPERATION_GUARD(StartTelemetryEvaluation); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, StartTelemetryEvaluation, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, StartTelemetryEvaluation, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, StartTelemetryEvaluation, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".StartTelemetryEvaluation", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> StartTelemetryEvaluationOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, StartTelemetryEvaluation, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/StartTelemetryEvaluation"); + return StartTelemetryEvaluationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +StartTelemetryEvaluationForOrganizationOutcome ObservabilityAdminClient::StartTelemetryEvaluationForOrganization(const StartTelemetryEvaluationForOrganizationRequest& request) const +{ + AWS_OPERATION_GUARD(StartTelemetryEvaluationForOrganization); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, StartTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, StartTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, StartTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".StartTelemetryEvaluationForOrganization", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> StartTelemetryEvaluationForOrganizationOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, StartTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/StartTelemetryEvaluationForOrganization"); + return StartTelemetryEvaluationForOrganizationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +StopTelemetryEvaluationOutcome ObservabilityAdminClient::StopTelemetryEvaluation(const StopTelemetryEvaluationRequest& request) const +{ + AWS_OPERATION_GUARD(StopTelemetryEvaluation); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, StopTelemetryEvaluation, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, StopTelemetryEvaluation, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, StopTelemetryEvaluation, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".StopTelemetryEvaluation", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> StopTelemetryEvaluationOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, StopTelemetryEvaluation, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/StopTelemetryEvaluation"); + return StopTelemetryEvaluationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + +StopTelemetryEvaluationForOrganizationOutcome ObservabilityAdminClient::StopTelemetryEvaluationForOrganization(const StopTelemetryEvaluationForOrganizationRequest& request) const +{ + AWS_OPERATION_GUARD(StopTelemetryEvaluationForOrganization); + AWS_OPERATION_CHECK_PTR(m_endpointProvider, StopTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE); + AWS_OPERATION_CHECK_PTR(m_telemetryProvider, StopTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto tracer = m_telemetryProvider->getTracer(this->GetServiceClientName(), {}); + auto meter = m_telemetryProvider->getMeter(this->GetServiceClientName(), {}); + AWS_OPERATION_CHECK_PTR(meter, StopTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::NOT_INITIALIZED); + auto span = tracer->CreateSpan(Aws::String(this->GetServiceClientName()) + ".StopTelemetryEvaluationForOrganization", + {{ TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName() }, { TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName() }, { TracingUtils::SMITHY_SYSTEM_DIMENSION, TracingUtils::SMITHY_METHOD_AWS_VALUE }}, + smithy::components::tracing::SpanKind::CLIENT); + return TracingUtils::MakeCallWithTiming( + [&]()-> StopTelemetryEvaluationForOrganizationOutcome { + auto endpointResolutionOutcome = TracingUtils::MakeCallWithTiming( + [&]() -> ResolveEndpointOutcome { return m_endpointProvider->ResolveEndpoint(request.GetEndpointContextParams()); }, + TracingUtils::SMITHY_CLIENT_ENDPOINT_RESOLUTION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); + AWS_OPERATION_CHECK_SUCCESS(endpointResolutionOutcome, StopTelemetryEvaluationForOrganization, CoreErrors, CoreErrors::ENDPOINT_RESOLUTION_FAILURE, endpointResolutionOutcome.GetError().GetMessage()); + endpointResolutionOutcome.GetResult().AddPathSegments("/StopTelemetryEvaluationForOrganization"); + return StopTelemetryEvaluationForOrganizationOutcome(MakeRequest(request, endpointResolutionOutcome.GetResult(), Aws::Http::HttpMethod::HTTP_POST, Aws::Auth::SIGV4_SIGNER)); + }, + TracingUtils::SMITHY_CLIENT_DURATION_METRIC, + *meter, + {{TracingUtils::SMITHY_METHOD_DIMENSION, request.GetServiceRequestName()}, {TracingUtils::SMITHY_SERVICE_DIMENSION, this->GetServiceClientName()}}); +} + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminEndpointProvider.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminEndpointProvider.cpp new file mode 100644 index 00000000000..7385b653e77 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminEndpointProvider.cpp @@ -0,0 +1,16 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Endpoint +{ +} // namespace Endpoint +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminEndpointRules.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminEndpointRules.cpp new file mode 100644 index 00000000000..bdd04dc005a --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminEndpointRules.cpp @@ -0,0 +1,177 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +const size_t ObservabilityAdminEndpointRules::RulesBlobStrLen = 3772; +const size_t ObservabilityAdminEndpointRules::RulesBlobSize = 3773; + +using RulesBlobT = Aws::Array; +static constexpr RulesBlobT RulesBlob = {{ +'{','"','v','e','r','s','i','o','n','"',':','"','1','.','0','"',',','"','p','a','r','a','m','e','t', +'e','r','s','"',':','{','"','R','e','g','i','o','n','"',':','{','"','b','u','i','l','t','I','n','"', +':','"','A','W','S',':',':','R','e','g','i','o','n','"',',','"','r','e','q','u','i','r','e','d','"', +':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"',':','"','T', +'h','e',' ','A','W','S',' ','r','e','g','i','o','n',' ','u','s','e','d',' ','t','o',' ','d','i','s', +'p','a','t','c','h',' ','t','h','e',' ','r','e','q','u','e','s','t','.','"',',','"','t','y','p','e', +'"',':','"','S','t','r','i','n','g','"','}',',','"','U','s','e','D','u','a','l','S','t','a','c','k', +'"',':','{','"','b','u','i','l','t','I','n','"',':','"','A','W','S',':',':','U','s','e','D','u','a', +'l','S','t','a','c','k','"',',','"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',','"', +'d','e','f','a','u','l','t','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a', +'t','i','o','n','"',':','"','W','h','e','n',' ','t','r','u','e',',',' ','u','s','e',' ','t','h','e', +' ','d','u','a','l','-','s','t','a','c','k',' ','e','n','d','p','o','i','n','t','.',' ','I','f',' ', +'t','h','e',' ','c','o','n','f','i','g','u','r','e','d',' ','e','n','d','p','o','i','n','t',' ','d', +'o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ','d','u','a','l','-','s','t','a','c', +'k',',',' ','d','i','s','p','a','t','c','h','i','n','g',' ','t','h','e',' ','r','e','q','u','e','s', +'t',' ','M','A','Y',' ','r','e','t','u','r','n',' ','a','n',' ','e','r','r','o','r','.','"',',','"', +'t','y','p','e','"',':','"','B','o','o','l','e','a','n','"','}',',','"','U','s','e','F','I','P','S', +'"',':','{','"','b','u','i','l','t','I','n','"',':','"','A','W','S',':',':','U','s','e','F','I','P', +'S','"',',','"','r','e','q','u','i','r','e','d','"',':','t','r','u','e',',','"','d','e','f','a','u', +'l','t','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"', +':','"','W','h','e','n',' ','t','r','u','e',',',' ','s','e','n','d',' ','t','h','i','s',' ','r','e', +'q','u','e','s','t',' ','t','o',' ','t','h','e',' ','F','I','P','S','-','c','o','m','p','l','i','a', +'n','t',' ','r','e','g','i','o','n','a','l',' ','e','n','d','p','o','i','n','t','.',' ','I','f',' ', +'t','h','e',' ','c','o','n','f','i','g','u','r','e','d',' ','e','n','d','p','o','i','n','t',' ','d', +'o','e','s',' ','n','o','t',' ','h','a','v','e',' ','a',' ','F','I','P','S',' ','c','o','m','p','l', +'i','a','n','t',' ','e','n','d','p','o','i','n','t',',',' ','d','i','s','p','a','t','c','h','i','n', +'g',' ','t','h','e',' ','r','e','q','u','e','s','t',' ','w','i','l','l',' ','r','e','t','u','r','n', +' ','a','n',' ','e','r','r','o','r','.','"',',','"','t','y','p','e','"',':','"','B','o','o','l','e', +'a','n','"','}',',','"','E','n','d','p','o','i','n','t','"',':','{','"','b','u','i','l','t','I','n', +'"',':','"','S','D','K',':',':','E','n','d','p','o','i','n','t','"',',','"','r','e','q','u','i','r', +'e','d','"',':','f','a','l','s','e',',','"','d','o','c','u','m','e','n','t','a','t','i','o','n','"', +':','"','O','v','e','r','r','i','d','e',' ','t','h','e',' ','e','n','d','p','o','i','n','t',' ','u', +'s','e','d',' ','t','o',' ','s','e','n','d',' ','t','h','i','s',' ','r','e','q','u','e','s','t','"', +',','"','t','y','p','e','"',':','"','S','t','r','i','n','g','"','}','}',',','"','r','u','l','e','s', +'"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"', +'i','s','S','e','t','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','E','n', +'d','p','o','i','n','t','"','}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o', +'n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n', +'E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U', +'s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':', +'"','I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','F', +'I','P','S',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a', +'r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']', +',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', +'{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r', +'g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t','a','c','k', +'"','}',',','t','r','u','e',']','}',']',',','"','e','r','r','o','r','"',':','"','I','n','v','a','l', +'i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','D','u','a','l','s','t','a', +'c','k',' ','a','n','d',' ','c','u','s','t','o','m',' ','e','n','d','p','o','i','n','t',' ','a','r', +'e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','"',',','"','t','y','p','e','"',':','"', +'e','r','r','o','r','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',', +'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','{','"','r','e','f','"',':', +'"','E','n','d','p','o','i','n','t','"','}',',','"','p','r','o','p','e','r','t','i','e','s','"',':', +'{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"', +'e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"', +'}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i', +'t','i','o','n','s','"',':','[',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d', +'i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','i','s','S','e','t','"',',','"','a', +'r','g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']','}',']', +',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', +'{','"','f','n','"',':','"','a','w','s','.','p','a','r','t','i','t','i','o','n','"',',','"','a','r', +'g','v','"',':','[','{','"','r','e','f','"',':','"','R','e','g','i','o','n','"','}',']',',','"','a', +'s','s','i','g','n','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}', +']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':', +'[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a', +'r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','F','I','P','S','"','}',',','t', +'r','u','e',']','}',',','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l', +'s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a', +'l','S','t','a','c','k','"','}',',','t','r','u','e',']','}',']',',','"','r','u','l','e','s','"',':', +'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o', +'o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e', +',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[', +'{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}', +',','"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',']','}',',','{','"','f','n','"', +':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[', +'t','r','u','e',',','{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g', +'v','"',':','[','{','"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u', +'l','t','"','}',',','"','s','u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']', +'}',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n', +'s','"',':','[',']',',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o', +'n','s','"',':','[',']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':', +'"','h','t','t','p','s',':','/','/','o','b','s','e','r','v','a','b','i','l','i','t','y','a','d','m', +'i','n','-','f','i','p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i', +'o','n','R','e','s','u','l','t','#','d','u','a','l','S','t','a','c','k','D','n','s','S','u','f','f', +'i','x','}','"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a', +'d','e','r','s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n', +'t','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',']',',','"','t','y','p', +'e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s','"',':', +'[',']',',','"','e','r','r','o','r','"',':','"','F','I','P','S',' ','a','n','d',' ','D','u','a','l', +'S','t','a','c','k',' ','a','r','e',' ','e','n','a','b','l','e','d',',',' ','b','u','t',' ','t','h', +'i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p', +'p','o','r','t',' ','o','n','e',' ','o','r',' ','b','o','t','h','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o', +'l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','{','"','r','e','f', +'"',':','"','U','s','e','F','I','P','S','"','}',',','t','r','u','e',']','}',']',',','"','r','u','l', +'e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"', +':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[', +'{','"','f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{', +'"','r','e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',', +'"','s','u','p','p','o','r','t','s','F','I','P','S','"',']','}',',','t','r','u','e',']','}',']',',', +'"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']', +',','"','r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[', +']',',','"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p', +'s',':','/','/','o','b','s','e','r','v','a','b','i','l','i','t','y','a','d','m','i','n','-','f','i', +'p','s','.','{','R','e','g','i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s', +'u','l','t','#','d','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r','t','i', +'e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t','y','p', +'e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':','"','t', +'r','e','e','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c', +'o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"','F','I', +'P','S',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t',' ','t','h','i','s',' ','p','a', +'r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s','u','p','p','o','r','t',' ', +'F','I','P','S','"',',','"','t','y','p','e','"',':','"','e','r','r','o','r','"','}',']',',','"','t', +'y','p','e','"',':','"','t','r','e','e','"','}',',','{','"','c','o','n','d','i','t','i','o','n','s', +'"',':','[','{','"','f','n','"',':','"','b','o','o','l','e','a','n','E','q','u','a','l','s','"',',', +'"','a','r','g','v','"',':','[','{','"','r','e','f','"',':','"','U','s','e','D','u','a','l','S','t', +'a','c','k','"','}',',','t','r','u','e',']','}',']',',','"','r','u','l','e','s','"',':','[','{','"', +'c','o','n','d','i','t','i','o','n','s','"',':','[','{','"','f','n','"',':','"','b','o','o','l','e', +'a','n','E','q','u','a','l','s','"',',','"','a','r','g','v','"',':','[','t','r','u','e',',','{','"', +'f','n','"',':','"','g','e','t','A','t','t','r','"',',','"','a','r','g','v','"',':','[','{','"','r', +'e','f','"',':','"','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','"','}',',','"','s', +'u','p','p','o','r','t','s','D','u','a','l','S','t','a','c','k','"',']','}',']','}',']',',','"','r', +'u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"', +'r','u','l','e','s','"',':','[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',', +'"','e','n','d','p','o','i','n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':', +'/','/','o','b','s','e','r','v','a','b','i','l','i','t','y','a','d','m','i','n','.','{','R','e','g', +'i','o','n','}','.','{','P','a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','u','a', +'l','S','t','a','c','k','D','n','s','S','u','f','f','i','x','}','"',',','"','p','r','o','p','e','r', +'t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r','s','"',':','{','}','}',',','"','t', +'y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}',']',',','"','t','y','p','e','"',':', +'"','t','r','e','e','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{', +'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"', +'D','u','a','l','S','t','a','c','k',' ','i','s',' ','e','n','a','b','l','e','d',' ','b','u','t',' ', +'t','h','i','s',' ','p','a','r','t','i','t','i','o','n',' ','d','o','e','s',' ','n','o','t',' ','s', +'u','p','p','o','r','t',' ','D','u','a','l','S','t','a','c','k','"',',','"','t','y','p','e','"',':', +'"','e','r','r','o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',', +'{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','r','u','l','e','s','"',':', +'[','{','"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','n','d','p','o','i', +'n','t','"',':','{','"','u','r','l','"',':','"','h','t','t','p','s',':','/','/','o','b','s','e','r', +'v','a','b','i','l','i','t','y','a','d','m','i','n','.','{','R','e','g','i','o','n','}','.','{','P', +'a','r','t','i','t','i','o','n','R','e','s','u','l','t','#','d','n','s','S','u','f','f','i','x','}', +'"',',','"','p','r','o','p','e','r','t','i','e','s','"',':','{','}',',','"','h','e','a','d','e','r', +'s','"',':','{','}','}',',','"','t','y','p','e','"',':','"','e','n','d','p','o','i','n','t','"','}', +']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',']',',','"','t','y','p','e','"',':', +'"','t','r','e','e','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',',','{', +'"','c','o','n','d','i','t','i','o','n','s','"',':','[',']',',','"','e','r','r','o','r','"',':','"', +'I','n','v','a','l','i','d',' ','C','o','n','f','i','g','u','r','a','t','i','o','n',':',' ','M','i', +'s','s','i','n','g',' ','R','e','g','i','o','n','"',',','"','t','y','p','e','"',':','"','e','r','r', +'o','r','"','}',']',',','"','t','y','p','e','"',':','"','t','r','e','e','"','}',']','}','\0' +}}; + +const char* ObservabilityAdminEndpointRules::GetRulesBlob() +{ + return RulesBlob.data(); +} + +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrorMarshaller.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrorMarshaller.cpp new file mode 100644 index 00000000000..420f5b20ea9 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrorMarshaller.cpp @@ -0,0 +1,22 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include + +using namespace Aws::Client; +using namespace Aws::ObservabilityAdmin; + +AWSError ObservabilityAdminErrorMarshaller::FindErrorByName(const char* errorName) const +{ + AWSError error = ObservabilityAdminErrorMapper::GetErrorForName(errorName); + if(error.GetErrorType() != CoreErrors::UNKNOWN) + { + return error; + } + + return AWSErrorMarshaller::FindErrorByName(errorName); +} \ No newline at end of file diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp new file mode 100644 index 00000000000..4eee5aedddf --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminErrors.cpp @@ -0,0 +1,52 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include + +using namespace Aws::Client; +using namespace Aws::Utils; +using namespace Aws::ObservabilityAdmin; +using namespace Aws::ObservabilityAdmin::Model; + +namespace Aws +{ +namespace ObservabilityAdmin +{ +template<> AWS_OBSERVABILITYADMIN_API InternalServerException ObservabilityAdminError::GetModeledError() +{ + assert(this->GetErrorType() == ObservabilityAdminErrors::INTERNAL_SERVER); + return InternalServerException(this->GetJsonPayload().View()); +} + +template<> AWS_OBSERVABILITYADMIN_API AccessDeniedException ObservabilityAdminError::GetModeledError() +{ + assert(this->GetErrorType() == ObservabilityAdminErrors::ACCESS_DENIED); + return AccessDeniedException(this->GetJsonPayload().View()); +} + +namespace ObservabilityAdminErrorMapper +{ + +static const int INTERNAL_SERVER_HASH = HashingUtils::HashString("InternalServerException"); + + +AWSError GetErrorForName(const char* errorName) +{ + int hashCode = HashingUtils::HashString(errorName); + + if (hashCode == INTERNAL_SERVER_HASH) + { + return AWSError(static_cast(ObservabilityAdminErrors::INTERNAL_SERVER), RetryableType::NOT_RETRYABLE); + } + return AWSError(CoreErrors::UNKNOWN, false); +} + +} // namespace ObservabilityAdminErrorMapper +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminRequest.cpp new file mode 100644 index 00000000000..b6e97a9ff84 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/ObservabilityAdminRequest.cpp @@ -0,0 +1,14 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + + +#include + +namespace Aws +{ +namespace ObservabilityAdmin +{ +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/AccessDeniedException.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/AccessDeniedException.cpp new file mode 100644 index 00000000000..4d482fbf366 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/AccessDeniedException.cpp @@ -0,0 +1,61 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + +AccessDeniedException::AccessDeniedException() : + m_messageHasBeenSet(false), + m_amznErrorTypeHasBeenSet(false) +{ +} + +AccessDeniedException::AccessDeniedException(JsonView jsonValue) + : AccessDeniedException() +{ + *this = jsonValue; +} + +AccessDeniedException& AccessDeniedException::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("Message")) + { + m_message = jsonValue.GetString("Message"); + + m_messageHasBeenSet = true; + } + + return *this; +} + +JsonValue AccessDeniedException::Jsonize() const +{ + JsonValue payload; + + if(m_messageHasBeenSet) + { + payload.WithString("Message", m_message); + + } + + return payload; +} + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusForOrganizationRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusForOrganizationRequest.cpp new file mode 100644 index 00000000000..5a1b076c619 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusForOrganizationRequest.cpp @@ -0,0 +1,26 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +GetTelemetryEvaluationStatusForOrganizationRequest::GetTelemetryEvaluationStatusForOrganizationRequest() +{ +} + +Aws::String GetTelemetryEvaluationStatusForOrganizationRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusForOrganizationResult.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusForOrganizationResult.cpp new file mode 100644 index 00000000000..0bc49a1d8c1 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusForOrganizationResult.cpp @@ -0,0 +1,56 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +GetTelemetryEvaluationStatusForOrganizationResult::GetTelemetryEvaluationStatusForOrganizationResult() : + m_status(Status::NOT_SET) +{ +} + +GetTelemetryEvaluationStatusForOrganizationResult::GetTelemetryEvaluationStatusForOrganizationResult(const Aws::AmazonWebServiceResult& result) + : GetTelemetryEvaluationStatusForOrganizationResult() +{ + *this = result; +} + +GetTelemetryEvaluationStatusForOrganizationResult& GetTelemetryEvaluationStatusForOrganizationResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("Status")) + { + m_status = StatusMapper::GetStatusForName(jsonValue.GetString("Status")); + + } + + if(jsonValue.ValueExists("FailureReason")) + { + m_failureReason = jsonValue.GetString("FailureReason"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusRequest.cpp new file mode 100644 index 00000000000..0d612c88183 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusRequest.cpp @@ -0,0 +1,26 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +GetTelemetryEvaluationStatusRequest::GetTelemetryEvaluationStatusRequest() +{ +} + +Aws::String GetTelemetryEvaluationStatusRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusResult.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusResult.cpp new file mode 100644 index 00000000000..0b57d801881 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/GetTelemetryEvaluationStatusResult.cpp @@ -0,0 +1,56 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +GetTelemetryEvaluationStatusResult::GetTelemetryEvaluationStatusResult() : + m_status(Status::NOT_SET) +{ +} + +GetTelemetryEvaluationStatusResult::GetTelemetryEvaluationStatusResult(const Aws::AmazonWebServiceResult& result) + : GetTelemetryEvaluationStatusResult() +{ + *this = result; +} + +GetTelemetryEvaluationStatusResult& GetTelemetryEvaluationStatusResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("Status")) + { + m_status = StatusMapper::GetStatusForName(jsonValue.GetString("Status")); + + } + + if(jsonValue.ValueExists("FailureReason")) + { + m_failureReason = jsonValue.GetString("FailureReason"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/InternalServerException.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/InternalServerException.cpp new file mode 100644 index 00000000000..2069251351f --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/InternalServerException.cpp @@ -0,0 +1,61 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + +InternalServerException::InternalServerException() : + m_messageHasBeenSet(false), + m_amznErrorTypeHasBeenSet(false) +{ +} + +InternalServerException::InternalServerException(JsonView jsonValue) + : InternalServerException() +{ + *this = jsonValue; +} + +InternalServerException& InternalServerException::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("Message")) + { + m_message = jsonValue.GetString("Message"); + + m_messageHasBeenSet = true; + } + + return *this; +} + +JsonValue InternalServerException::Jsonize() const +{ + JsonValue payload; + + if(m_messageHasBeenSet) + { + payload.WithString("Message", m_message); + + } + + return payload; +} + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryForOrganizationRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryForOrganizationRequest.cpp new file mode 100644 index 00000000000..081a0610f77 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryForOrganizationRequest.cpp @@ -0,0 +1,98 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +ListResourceTelemetryForOrganizationRequest::ListResourceTelemetryForOrganizationRequest() : + m_accountIdentifiersHasBeenSet(false), + m_resourceIdentifierPrefixHasBeenSet(false), + m_resourceTypesHasBeenSet(false), + m_telemetryConfigurationStateHasBeenSet(false), + m_resourceTagsHasBeenSet(false), + m_maxResults(0), + m_maxResultsHasBeenSet(false), + m_nextTokenHasBeenSet(false) +{ +} + +Aws::String ListResourceTelemetryForOrganizationRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_accountIdentifiersHasBeenSet) + { + Aws::Utils::Array accountIdentifiersJsonList(m_accountIdentifiers.size()); + for(unsigned accountIdentifiersIndex = 0; accountIdentifiersIndex < accountIdentifiersJsonList.GetLength(); ++accountIdentifiersIndex) + { + accountIdentifiersJsonList[accountIdentifiersIndex].AsString(m_accountIdentifiers[accountIdentifiersIndex]); + } + payload.WithArray("AccountIdentifiers", std::move(accountIdentifiersJsonList)); + + } + + if(m_resourceIdentifierPrefixHasBeenSet) + { + payload.WithString("ResourceIdentifierPrefix", m_resourceIdentifierPrefix); + + } + + if(m_resourceTypesHasBeenSet) + { + Aws::Utils::Array resourceTypesJsonList(m_resourceTypes.size()); + for(unsigned resourceTypesIndex = 0; resourceTypesIndex < resourceTypesJsonList.GetLength(); ++resourceTypesIndex) + { + resourceTypesJsonList[resourceTypesIndex].AsString(ResourceTypeMapper::GetNameForResourceType(m_resourceTypes[resourceTypesIndex])); + } + payload.WithArray("ResourceTypes", std::move(resourceTypesJsonList)); + + } + + if(m_telemetryConfigurationStateHasBeenSet) + { + JsonValue telemetryConfigurationStateJsonMap; + for(auto& telemetryConfigurationStateItem : m_telemetryConfigurationState) + { + telemetryConfigurationStateJsonMap.WithString(TelemetryTypeMapper::GetNameForTelemetryType(telemetryConfigurationStateItem.first), TelemetryStateMapper::GetNameForTelemetryState(telemetryConfigurationStateItem.second)); + } + payload.WithObject("TelemetryConfigurationState", std::move(telemetryConfigurationStateJsonMap)); + + } + + if(m_resourceTagsHasBeenSet) + { + JsonValue resourceTagsJsonMap; + for(auto& resourceTagsItem : m_resourceTags) + { + resourceTagsJsonMap.WithString(resourceTagsItem.first, resourceTagsItem.second); + } + payload.WithObject("ResourceTags", std::move(resourceTagsJsonMap)); + + } + + if(m_maxResultsHasBeenSet) + { + payload.WithInteger("MaxResults", m_maxResults); + + } + + if(m_nextTokenHasBeenSet) + { + payload.WithString("NextToken", m_nextToken); + + } + + return payload.View().WriteReadable(); +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryForOrganizationResult.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryForOrganizationResult.cpp new file mode 100644 index 00000000000..6676010a173 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryForOrganizationResult.cpp @@ -0,0 +1,57 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +ListResourceTelemetryForOrganizationResult::ListResourceTelemetryForOrganizationResult() +{ +} + +ListResourceTelemetryForOrganizationResult::ListResourceTelemetryForOrganizationResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +ListResourceTelemetryForOrganizationResult& ListResourceTelemetryForOrganizationResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("TelemetryConfigurations")) + { + Aws::Utils::Array telemetryConfigurationsJsonList = jsonValue.GetArray("TelemetryConfigurations"); + for(unsigned telemetryConfigurationsIndex = 0; telemetryConfigurationsIndex < telemetryConfigurationsJsonList.GetLength(); ++telemetryConfigurationsIndex) + { + m_telemetryConfigurations.push_back(telemetryConfigurationsJsonList[telemetryConfigurationsIndex].AsObject()); + } + } + + if(jsonValue.ValueExists("NextToken")) + { + m_nextToken = jsonValue.GetString("NextToken"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryRequest.cpp new file mode 100644 index 00000000000..6d09f06cfea --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryRequest.cpp @@ -0,0 +1,86 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +ListResourceTelemetryRequest::ListResourceTelemetryRequest() : + m_resourceIdentifierPrefixHasBeenSet(false), + m_resourceTypesHasBeenSet(false), + m_telemetryConfigurationStateHasBeenSet(false), + m_resourceTagsHasBeenSet(false), + m_maxResults(0), + m_maxResultsHasBeenSet(false), + m_nextTokenHasBeenSet(false) +{ +} + +Aws::String ListResourceTelemetryRequest::SerializePayload() const +{ + JsonValue payload; + + if(m_resourceIdentifierPrefixHasBeenSet) + { + payload.WithString("ResourceIdentifierPrefix", m_resourceIdentifierPrefix); + + } + + if(m_resourceTypesHasBeenSet) + { + Aws::Utils::Array resourceTypesJsonList(m_resourceTypes.size()); + for(unsigned resourceTypesIndex = 0; resourceTypesIndex < resourceTypesJsonList.GetLength(); ++resourceTypesIndex) + { + resourceTypesJsonList[resourceTypesIndex].AsString(ResourceTypeMapper::GetNameForResourceType(m_resourceTypes[resourceTypesIndex])); + } + payload.WithArray("ResourceTypes", std::move(resourceTypesJsonList)); + + } + + if(m_telemetryConfigurationStateHasBeenSet) + { + JsonValue telemetryConfigurationStateJsonMap; + for(auto& telemetryConfigurationStateItem : m_telemetryConfigurationState) + { + telemetryConfigurationStateJsonMap.WithString(TelemetryTypeMapper::GetNameForTelemetryType(telemetryConfigurationStateItem.first), TelemetryStateMapper::GetNameForTelemetryState(telemetryConfigurationStateItem.second)); + } + payload.WithObject("TelemetryConfigurationState", std::move(telemetryConfigurationStateJsonMap)); + + } + + if(m_resourceTagsHasBeenSet) + { + JsonValue resourceTagsJsonMap; + for(auto& resourceTagsItem : m_resourceTags) + { + resourceTagsJsonMap.WithString(resourceTagsItem.first, resourceTagsItem.second); + } + payload.WithObject("ResourceTags", std::move(resourceTagsJsonMap)); + + } + + if(m_maxResultsHasBeenSet) + { + payload.WithInteger("MaxResults", m_maxResults); + + } + + if(m_nextTokenHasBeenSet) + { + payload.WithString("NextToken", m_nextToken); + + } + + return payload.View().WriteReadable(); +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryResult.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryResult.cpp new file mode 100644 index 00000000000..fb5c51e3140 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ListResourceTelemetryResult.cpp @@ -0,0 +1,57 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; +using namespace Aws; + +ListResourceTelemetryResult::ListResourceTelemetryResult() +{ +} + +ListResourceTelemetryResult::ListResourceTelemetryResult(const Aws::AmazonWebServiceResult& result) +{ + *this = result; +} + +ListResourceTelemetryResult& ListResourceTelemetryResult::operator =(const Aws::AmazonWebServiceResult& result) +{ + JsonView jsonValue = result.GetPayload().View(); + if(jsonValue.ValueExists("TelemetryConfigurations")) + { + Aws::Utils::Array telemetryConfigurationsJsonList = jsonValue.GetArray("TelemetryConfigurations"); + for(unsigned telemetryConfigurationsIndex = 0; telemetryConfigurationsIndex < telemetryConfigurationsJsonList.GetLength(); ++telemetryConfigurationsIndex) + { + m_telemetryConfigurations.push_back(telemetryConfigurationsJsonList[telemetryConfigurationsIndex].AsObject()); + } + } + + if(jsonValue.ValueExists("NextToken")) + { + m_nextToken = jsonValue.GetString("NextToken"); + + } + + + const auto& headers = result.GetHeaderValueCollection(); + const auto& requestIdIter = headers.find("x-amzn-requestid"); + if(requestIdIter != headers.end()) + { + m_requestId = requestIdIter->second; + } + + + return *this; +} diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ResourceType.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ResourceType.cpp new file mode 100644 index 00000000000..c5dbfa063cf --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/ResourceType.cpp @@ -0,0 +1,79 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ObservabilityAdmin + { + namespace Model + { + namespace ResourceTypeMapper + { + + static const int AWS_EC2_Instance_HASH = HashingUtils::HashString("AWS::EC2::Instance"); + static const int AWS_EC2_VPC_HASH = HashingUtils::HashString("AWS::EC2::VPC"); + static const int AWS_Lambda_Function_HASH = HashingUtils::HashString("AWS::Lambda::Function"); + + + ResourceType GetResourceTypeForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == AWS_EC2_Instance_HASH) + { + return ResourceType::AWS_EC2_Instance; + } + else if (hashCode == AWS_EC2_VPC_HASH) + { + return ResourceType::AWS_EC2_VPC; + } + else if (hashCode == AWS_Lambda_Function_HASH) + { + return ResourceType::AWS_Lambda_Function; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return ResourceType::NOT_SET; + } + + Aws::String GetNameForResourceType(ResourceType enumValue) + { + switch(enumValue) + { + case ResourceType::NOT_SET: + return {}; + case ResourceType::AWS_EC2_Instance: + return "AWS::EC2::Instance"; + case ResourceType::AWS_EC2_VPC: + return "AWS::EC2::VPC"; + case ResourceType::AWS_Lambda_Function: + return "AWS::Lambda::Function"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace ResourceTypeMapper + } // namespace Model + } // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StartTelemetryEvaluationForOrganizationRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StartTelemetryEvaluationForOrganizationRequest.cpp new file mode 100644 index 00000000000..fe8a8c7e8ad --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StartTelemetryEvaluationForOrganizationRequest.cpp @@ -0,0 +1,26 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +StartTelemetryEvaluationForOrganizationRequest::StartTelemetryEvaluationForOrganizationRequest() +{ +} + +Aws::String StartTelemetryEvaluationForOrganizationRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StartTelemetryEvaluationRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StartTelemetryEvaluationRequest.cpp new file mode 100644 index 00000000000..926f7f9544e --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StartTelemetryEvaluationRequest.cpp @@ -0,0 +1,26 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +StartTelemetryEvaluationRequest::StartTelemetryEvaluationRequest() +{ +} + +Aws::String StartTelemetryEvaluationRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/Status.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/Status.cpp new file mode 100644 index 00000000000..8480b171e7f --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/Status.cpp @@ -0,0 +1,107 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ObservabilityAdmin + { + namespace Model + { + namespace StatusMapper + { + + static const int NOT_STARTED_HASH = HashingUtils::HashString("NOT_STARTED"); + static const int STARTING_HASH = HashingUtils::HashString("STARTING"); + static const int FAILED_START_HASH = HashingUtils::HashString("FAILED_START"); + static const int RUNNING_HASH = HashingUtils::HashString("RUNNING"); + static const int STOPPING_HASH = HashingUtils::HashString("STOPPING"); + static const int FAILED_STOP_HASH = HashingUtils::HashString("FAILED_STOP"); + static const int STOPPED_HASH = HashingUtils::HashString("STOPPED"); + + + Status GetStatusForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == NOT_STARTED_HASH) + { + return Status::NOT_STARTED; + } + else if (hashCode == STARTING_HASH) + { + return Status::STARTING; + } + else if (hashCode == FAILED_START_HASH) + { + return Status::FAILED_START; + } + else if (hashCode == RUNNING_HASH) + { + return Status::RUNNING; + } + else if (hashCode == STOPPING_HASH) + { + return Status::STOPPING; + } + else if (hashCode == FAILED_STOP_HASH) + { + return Status::FAILED_STOP; + } + else if (hashCode == STOPPED_HASH) + { + return Status::STOPPED; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return Status::NOT_SET; + } + + Aws::String GetNameForStatus(Status enumValue) + { + switch(enumValue) + { + case Status::NOT_SET: + return {}; + case Status::NOT_STARTED: + return "NOT_STARTED"; + case Status::STARTING: + return "STARTING"; + case Status::FAILED_START: + return "FAILED_START"; + case Status::RUNNING: + return "RUNNING"; + case Status::STOPPING: + return "STOPPING"; + case Status::FAILED_STOP: + return "FAILED_STOP"; + case Status::STOPPED: + return "STOPPED"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace StatusMapper + } // namespace Model + } // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StopTelemetryEvaluationForOrganizationRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StopTelemetryEvaluationForOrganizationRequest.cpp new file mode 100644 index 00000000000..8f2b6cbaf5d --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StopTelemetryEvaluationForOrganizationRequest.cpp @@ -0,0 +1,26 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +StopTelemetryEvaluationForOrganizationRequest::StopTelemetryEvaluationForOrganizationRequest() +{ +} + +Aws::String StopTelemetryEvaluationForOrganizationRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StopTelemetryEvaluationRequest.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StopTelemetryEvaluationRequest.cpp new file mode 100644 index 00000000000..515a852dd39 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/StopTelemetryEvaluationRequest.cpp @@ -0,0 +1,26 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::ObservabilityAdmin::Model; +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +StopTelemetryEvaluationRequest::StopTelemetryEvaluationRequest() +{ +} + +Aws::String StopTelemetryEvaluationRequest::SerializePayload() const +{ + return {}; +} + + + + diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryConfiguration.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryConfiguration.cpp new file mode 100644 index 00000000000..6d9ee842fed --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryConfiguration.cpp @@ -0,0 +1,146 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + +using namespace Aws::Utils::Json; +using namespace Aws::Utils; + +namespace Aws +{ +namespace ObservabilityAdmin +{ +namespace Model +{ + +TelemetryConfiguration::TelemetryConfiguration() : + m_accountIdentifierHasBeenSet(false), + m_telemetryConfigurationStateHasBeenSet(false), + m_resourceType(ResourceType::NOT_SET), + m_resourceTypeHasBeenSet(false), + m_resourceIdentifierHasBeenSet(false), + m_resourceTagsHasBeenSet(false), + m_lastUpdateTimeStamp(0), + m_lastUpdateTimeStampHasBeenSet(false) +{ +} + +TelemetryConfiguration::TelemetryConfiguration(JsonView jsonValue) + : TelemetryConfiguration() +{ + *this = jsonValue; +} + +TelemetryConfiguration& TelemetryConfiguration::operator =(JsonView jsonValue) +{ + if(jsonValue.ValueExists("AccountIdentifier")) + { + m_accountIdentifier = jsonValue.GetString("AccountIdentifier"); + + m_accountIdentifierHasBeenSet = true; + } + + if(jsonValue.ValueExists("TelemetryConfigurationState")) + { + Aws::Map telemetryConfigurationStateJsonMap = jsonValue.GetObject("TelemetryConfigurationState").GetAllObjects(); + for(auto& telemetryConfigurationStateItem : telemetryConfigurationStateJsonMap) + { + m_telemetryConfigurationState[TelemetryTypeMapper::GetTelemetryTypeForName(telemetryConfigurationStateItem.first)] = TelemetryStateMapper::GetTelemetryStateForName(telemetryConfigurationStateItem.second.AsString()); + } + m_telemetryConfigurationStateHasBeenSet = true; + } + + if(jsonValue.ValueExists("ResourceType")) + { + m_resourceType = ResourceTypeMapper::GetResourceTypeForName(jsonValue.GetString("ResourceType")); + + m_resourceTypeHasBeenSet = true; + } + + if(jsonValue.ValueExists("ResourceIdentifier")) + { + m_resourceIdentifier = jsonValue.GetString("ResourceIdentifier"); + + m_resourceIdentifierHasBeenSet = true; + } + + if(jsonValue.ValueExists("ResourceTags")) + { + Aws::Map resourceTagsJsonMap = jsonValue.GetObject("ResourceTags").GetAllObjects(); + for(auto& resourceTagsItem : resourceTagsJsonMap) + { + m_resourceTags[resourceTagsItem.first] = resourceTagsItem.second.AsString(); + } + m_resourceTagsHasBeenSet = true; + } + + if(jsonValue.ValueExists("LastUpdateTimeStamp")) + { + m_lastUpdateTimeStamp = jsonValue.GetInt64("LastUpdateTimeStamp"); + + m_lastUpdateTimeStampHasBeenSet = true; + } + + return *this; +} + +JsonValue TelemetryConfiguration::Jsonize() const +{ + JsonValue payload; + + if(m_accountIdentifierHasBeenSet) + { + payload.WithString("AccountIdentifier", m_accountIdentifier); + + } + + if(m_telemetryConfigurationStateHasBeenSet) + { + JsonValue telemetryConfigurationStateJsonMap; + for(auto& telemetryConfigurationStateItem : m_telemetryConfigurationState) + { + telemetryConfigurationStateJsonMap.WithString(TelemetryTypeMapper::GetNameForTelemetryType(telemetryConfigurationStateItem.first), TelemetryStateMapper::GetNameForTelemetryState(telemetryConfigurationStateItem.second)); + } + payload.WithObject("TelemetryConfigurationState", std::move(telemetryConfigurationStateJsonMap)); + + } + + if(m_resourceTypeHasBeenSet) + { + payload.WithString("ResourceType", ResourceTypeMapper::GetNameForResourceType(m_resourceType)); + } + + if(m_resourceIdentifierHasBeenSet) + { + payload.WithString("ResourceIdentifier", m_resourceIdentifier); + + } + + if(m_resourceTagsHasBeenSet) + { + JsonValue resourceTagsJsonMap; + for(auto& resourceTagsItem : m_resourceTags) + { + resourceTagsJsonMap.WithString(resourceTagsItem.first, resourceTagsItem.second); + } + payload.WithObject("ResourceTags", std::move(resourceTagsJsonMap)); + + } + + if(m_lastUpdateTimeStampHasBeenSet) + { + payload.WithInt64("LastUpdateTimeStamp", m_lastUpdateTimeStamp); + + } + + return payload; +} + +} // namespace Model +} // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryState.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryState.cpp new file mode 100644 index 00000000000..e0bbf8f8822 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryState.cpp @@ -0,0 +1,79 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ObservabilityAdmin + { + namespace Model + { + namespace TelemetryStateMapper + { + + static const int Enabled_HASH = HashingUtils::HashString("Enabled"); + static const int Disabled_HASH = HashingUtils::HashString("Disabled"); + static const int NotApplicable_HASH = HashingUtils::HashString("NotApplicable"); + + + TelemetryState GetTelemetryStateForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == Enabled_HASH) + { + return TelemetryState::Enabled; + } + else if (hashCode == Disabled_HASH) + { + return TelemetryState::Disabled; + } + else if (hashCode == NotApplicable_HASH) + { + return TelemetryState::NotApplicable; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return TelemetryState::NOT_SET; + } + + Aws::String GetNameForTelemetryState(TelemetryState enumValue) + { + switch(enumValue) + { + case TelemetryState::NOT_SET: + return {}; + case TelemetryState::Enabled: + return "Enabled"; + case TelemetryState::Disabled: + return "Disabled"; + case TelemetryState::NotApplicable: + return "NotApplicable"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace TelemetryStateMapper + } // namespace Model + } // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryType.cpp b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryType.cpp new file mode 100644 index 00000000000..38688f1e205 --- /dev/null +++ b/generated/src/aws-cpp-sdk-observabilityadmin/source/model/TelemetryType.cpp @@ -0,0 +1,79 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include + +using namespace Aws::Utils; + + +namespace Aws +{ + namespace ObservabilityAdmin + { + namespace Model + { + namespace TelemetryTypeMapper + { + + static const int Logs_HASH = HashingUtils::HashString("Logs"); + static const int Metrics_HASH = HashingUtils::HashString("Metrics"); + static const int Traces_HASH = HashingUtils::HashString("Traces"); + + + TelemetryType GetTelemetryTypeForName(const Aws::String& name) + { + int hashCode = HashingUtils::HashString(name.c_str()); + if (hashCode == Logs_HASH) + { + return TelemetryType::Logs; + } + else if (hashCode == Metrics_HASH) + { + return TelemetryType::Metrics; + } + else if (hashCode == Traces_HASH) + { + return TelemetryType::Traces; + } + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + overflowContainer->StoreOverflow(hashCode, name); + return static_cast(hashCode); + } + + return TelemetryType::NOT_SET; + } + + Aws::String GetNameForTelemetryType(TelemetryType enumValue) + { + switch(enumValue) + { + case TelemetryType::NOT_SET: + return {}; + case TelemetryType::Logs: + return "Logs"; + case TelemetryType::Metrics: + return "Metrics"; + case TelemetryType::Traces: + return "Traces"; + default: + EnumParseOverflowContainer* overflowContainer = Aws::GetEnumOverflowContainer(); + if(overflowContainer) + { + return overflowContainer->RetrieveOverflow(static_cast(enumValue)); + } + + return {}; + } + } + + } // namespace TelemetryTypeMapper + } // namespace Model + } // namespace ObservabilityAdmin +} // namespace Aws diff --git a/generated/tests/observabilityadmin-gen-tests/CMakeLists.txt b/generated/tests/observabilityadmin-gen-tests/CMakeLists.txt new file mode 100644 index 00000000000..825fdb7a188 --- /dev/null +++ b/generated/tests/observabilityadmin-gen-tests/CMakeLists.txt @@ -0,0 +1,42 @@ +add_project(observabilityadmin-gen-tests + "Tests for the AWS OBSERVABILITYADMIN C++ SDK" + testing-resources + aws-cpp-sdk-observabilityadmin + aws-cpp-sdk-core) + +file(GLOB AWS_OBSERVABILITYADMIN_GENERATED_TEST_SRC + "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp" +) + +if(MSVC AND BUILD_SHARED_LIBS) + add_definitions(-DGTEST_LINKED_AS_SHARED_LIBRARY=1) +endif() + +if (CMAKE_CROSSCOMPILING) + set(AUTORUN_UNIT_TESTS OFF) +endif() + +if (AUTORUN_UNIT_TESTS) + enable_testing() +endif() + +if(PLATFORM_ANDROID AND BUILD_SHARED_LIBS) + add_library(${PROJECT_NAME} "${AWS_OBSERVABILITYADMIN_GENERATED_TEST_SRC}") +else() + add_executable(${PROJECT_NAME} "${AWS_OBSERVABILITYADMIN_GENERATED_TEST_SRC}") +endif() + +set_compiler_flags(${PROJECT_NAME}) +set_compiler_warnings(${PROJECT_NAME}) + +target_link_libraries(${PROJECT_NAME} ${PROJECT_LIBS}) + +if (AUTORUN_UNIT_TESTS) + ADD_CUSTOM_COMMAND( TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E env LD_LIBRARY_PATH=${AWS_AUTORUN_LD_LIBRARY_PATH}:$ENV{LD_LIBRARY_PATH} $ + ARGS "--gtest_brief=1") +endif() + +if(NOT CMAKE_CROSSCOMPILING) + SET_TARGET_PROPERTIES(${PROJECT_NAME} PROPERTIES OUTPUT_NAME ${PROJECT_NAME}) +endif() \ No newline at end of file diff --git a/generated/tests/observabilityadmin-gen-tests/ObservabilityAdminEndpointProviderTests.cpp b/generated/tests/observabilityadmin-gen-tests/ObservabilityAdminEndpointProviderTests.cpp new file mode 100644 index 00000000000..d9d523862dd --- /dev/null +++ b/generated/tests/observabilityadmin-gen-tests/ObservabilityAdminEndpointProviderTests.cpp @@ -0,0 +1,428 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include + +#include + + +static const char* ALLOCATION_TAG = "AWSObservabilityAdminEndpointProviderTests"; +using ObservabilityAdminEndpointProvider = Aws::ObservabilityAdmin::Endpoint::ObservabilityAdminEndpointProvider; +using EndpointParameters = Aws::Vector; +using ResolveEndpointOutcome = Aws::Endpoint::ResolveEndpointOutcome; + +using EpParam = Aws::Endpoint::EndpointParameter; +using EpProp = Aws::Endpoint::EndpointParameter; // just a container to store test expectations +using ExpEpProps = Aws::UnorderedMap>>; +using ExpEpAuthScheme = Aws::Vector; +using ExpEpHeaders = Aws::UnorderedMap>; + +struct ObservabilityAdminEndpointProviderEndpointTestCase +{ + using OperationParamsFromTest = EndpointParameters; + + struct Expect + { + struct Endpoint + { + Aws::String url; + ExpEpAuthScheme authScheme; + ExpEpProps properties; + ExpEpHeaders headers; + } endpoint; + Aws::String error; + }; + struct OperationInput + { + Aws::String operationName; + OperationParamsFromTest operationParams; + OperationParamsFromTest builtinParams; + OperationParamsFromTest clientParams; + }; + + Aws::String documentation; + // Specification tells us it is Client Initialization parameters + // At the same time, specification tells us to test EndpointProvider not the client itself + // Hence params here will be set as a client params (just like a dedicated field above). + Aws::Vector params; + Aws::Vector tags; + Expect expect; + // Aws::Vector operationInput; +}; + +class ObservabilityAdminEndpointProviderTests : public ::testing::TestWithParam +{ +public: + static const size_t TEST_CASES_SZ; +protected: + static Aws::Vector getTestCase(); + static Aws::UniquePtrSafeDeleted> TEST_CASES; + static void SetUpTestSuite() + { + TEST_CASES = Aws::MakeUniqueSafeDeleted>(ALLOCATION_TAG, getTestCase()); + ASSERT_TRUE(TEST_CASES) << "Failed to allocate TEST_CASES table"; + assert(TEST_CASES->size() == TEST_CASES_SZ); + } + + static void TearDownTestSuite() + { + TEST_CASES.reset(); + } +}; + +Aws::UniquePtrSafeDeleted> ObservabilityAdminEndpointProviderTests::TEST_CASES; +const size_t ObservabilityAdminEndpointProviderTests::TEST_CASES_SZ = 25; + +Aws::Vector ObservabilityAdminEndpointProviderTests::getTestCase() { + + Aws::Vector test_cases = { + /*TEST CASE 0*/ + {"For region us-east-1 with FIPS enabled and DualStack enabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.us-east-1.api.aws", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 1*/ + {"For region us-east-1 with FIPS enabled and DualStack disabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.us-east-1.amazonaws.com", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 2*/ + {"For region us-east-1 with FIPS disabled and DualStack enabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.us-east-1.api.aws", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 3*/ + {"For region us-east-1 with FIPS disabled and DualStack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.us-east-1.amazonaws.com", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 4*/ + {"For region cn-north-1 with FIPS enabled and DualStack enabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "cn-north-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.cn-north-1.api.amazonwebservices.com.cn", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 5*/ + {"For region cn-north-1 with FIPS enabled and DualStack disabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "cn-north-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.cn-north-1.amazonaws.com.cn", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 6*/ + {"For region cn-north-1 with FIPS disabled and DualStack enabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "cn-north-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.cn-north-1.api.amazonwebservices.com.cn", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 7*/ + {"For region cn-north-1 with FIPS disabled and DualStack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "cn-north-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.cn-north-1.amazonaws.com.cn", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 8*/ + {"For region us-gov-east-1 with FIPS enabled and DualStack enabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-gov-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.us-gov-east-1.api.aws", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 9*/ + {"For region us-gov-east-1 with FIPS enabled and DualStack disabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-gov-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.us-gov-east-1.amazonaws.com", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 10*/ + {"For region us-gov-east-1 with FIPS disabled and DualStack enabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-gov-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.us-gov-east-1.api.aws", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 11*/ + {"For region us-gov-east-1 with FIPS disabled and DualStack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-gov-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.us-gov-east-1.amazonaws.com", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 12*/ + {"For region us-iso-east-1 with FIPS enabled and DualStack enabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-iso-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"FIPS and DualStack are enabled, but this partition does not support one or both"} // expect + }, + /*TEST CASE 13*/ + {"For region us-iso-east-1 with FIPS enabled and DualStack disabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-iso-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.us-iso-east-1.c2s.ic.gov", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 14*/ + {"For region us-iso-east-1 with FIPS disabled and DualStack enabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-iso-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"DualStack is enabled but this partition does not support DualStack"} // expect + }, + /*TEST CASE 15*/ + {"For region us-iso-east-1 with FIPS disabled and DualStack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-iso-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.us-iso-east-1.c2s.ic.gov", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 16*/ + {"For region us-isob-east-1 with FIPS enabled and DualStack enabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-isob-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"FIPS and DualStack are enabled, but this partition does not support one or both"} // expect + }, + /*TEST CASE 17*/ + {"For region us-isob-east-1 with FIPS enabled and DualStack disabled", // documentation + {EpParam("UseFIPS", true), EpParam("Region", "us-isob-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin-fips.us-isob-east-1.sc2s.sgov.gov", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 18*/ + {"For region us-isob-east-1 with FIPS disabled and DualStack enabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-isob-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"DualStack is enabled but this partition does not support DualStack"} // expect + }, + /*TEST CASE 19*/ + {"For region us-isob-east-1 with FIPS disabled and DualStack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Region", "us-isob-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://observabilityadmin.us-isob-east-1.sc2s.sgov.gov", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 20*/ + {"For custom endpoint with region set and fips disabled and dualstack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Endpoint", "https://example.com"), EpParam("Region", "us-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://example.com", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 21*/ + {"For custom endpoint with region not set and fips disabled and dualstack disabled", // documentation + {EpParam("UseFIPS", false), EpParam("Endpoint", "https://example.com"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*epUrl*/"https://example.com", + {/*authScheme*/}, + {/*properties*/}, + {/*headers*/}}, {/*No error*/}} // expect + }, + /*TEST CASE 22*/ + {"For custom endpoint with fips enabled and dualstack disabled", // documentation + {EpParam("UseFIPS", true), EpParam("Endpoint", "https://example.com"), EpParam("Region", "us-east-1"), EpParam("UseDualStack", false)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"Invalid Configuration: FIPS and custom endpoint are not supported"} // expect + }, + /*TEST CASE 23*/ + {"For custom endpoint with fips disabled and dualstack enabled", // documentation + {EpParam("UseFIPS", false), EpParam("Endpoint", "https://example.com"), EpParam("Region", "us-east-1"), EpParam("UseDualStack", true)}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"Invalid Configuration: Dualstack and custom endpoint are not supported"} // expect + }, + /*TEST CASE 24*/ + {"Missing region", // documentation + {}, // params + {}, // tags + {{/*No endpoint expected*/}, /*error*/"Invalid Configuration: Missing Region"} // expect + } + }; + return test_cases; +} + +Aws::String RulesToSdkSignerName(const Aws::String& rulesSignerName) +{ + Aws::String sdkSigner = "NullSigner"; + if (rulesSignerName == "sigv4") { + sdkSigner = "SignatureV4"; + } else if (rulesSignerName == "sigv4a") { + sdkSigner = "AsymmetricSignatureV4"; + } else if (rulesSignerName == "none") { + sdkSigner = "NullSigner"; + } else if (rulesSignerName == "bearer") { + sdkSigner = "Bearer"; + } else if (rulesSignerName == "s3Express") { + sdkSigner = "S3ExpressSigner"; + } else { + sdkSigner = rulesSignerName; + } + + return sdkSigner; +} + +void ValidateOutcome(const ResolveEndpointOutcome& outcome, const ObservabilityAdminEndpointProviderEndpointTestCase::Expect& expect) +{ + if(!expect.error.empty()) + { + ASSERT_FALSE(outcome.IsSuccess()) << "Expected failure with message:\n" << expect.error; + ASSERT_EQ(outcome.GetError().GetMessage(), expect.error); + } + else + { + AWS_ASSERT_SUCCESS(outcome); + ASSERT_EQ(outcome.GetResult().GetURL(), expect.endpoint.url); + const auto expAuthSchemesIt = expect.endpoint.properties.find("authSchemes"); + if (expAuthSchemesIt != expect.endpoint.properties.end()) + { + // in the list of AuthSchemes, select the one with a highest priority + const Aws::Vector priotityList = {"s3Express", "sigv4a", "sigv4", "bearer", "none", ""}; + const auto expectedAuthSchemePropsIt = std::find_first_of(expAuthSchemesIt->second.begin(), expAuthSchemesIt->second.end(), + priotityList.begin(), priotityList.end(), [](const Aws::Vector& props, const Aws::String& expName) + { + const auto& propNameIt = std::find_if(props.begin(), props.end(), [](const EpProp& prop) + { + return prop.GetName() == "name"; + }); + assert(propNameIt != props.end()); + return propNameIt->GetStrValueNoCheck() == expName; + }); + assert(expectedAuthSchemePropsIt != expAuthSchemesIt->second.end()); + + const auto& endpointResultAttrs = outcome.GetResult().GetAttributes(); + ASSERT_TRUE(endpointResultAttrs) << "Expected non-empty EndpointAttributes (authSchemes)"; + for (const auto& expProperty : *expectedAuthSchemePropsIt) + { + if (expProperty.GetName() == "name") { + ASSERT_TRUE(!endpointResultAttrs->authScheme.GetName().empty()); + ASSERT_EQ(RulesToSdkSignerName(expProperty.GetStrValueNoCheck()), endpointResultAttrs->authScheme.GetName()); + } else if (expProperty.GetName() == "signingName") { + ASSERT_TRUE(endpointResultAttrs->authScheme.GetSigningName()); + ASSERT_EQ(expProperty.GetStrValueNoCheck(), endpointResultAttrs->authScheme.GetSigningName().value()); + } else if (expProperty.GetName() == "signingRegion") { + ASSERT_TRUE(endpointResultAttrs->authScheme.GetSigningRegion()); + ASSERT_EQ(expProperty.GetStrValueNoCheck(), endpointResultAttrs->authScheme.GetSigningRegion().value()); + } else if (expProperty.GetName() == "signingRegionSet") { + ASSERT_TRUE(endpointResultAttrs->authScheme.GetSigningRegionSet()); + ASSERT_EQ(expProperty.GetStrValueNoCheck(), endpointResultAttrs->authScheme.GetSigningRegionSet().value()); + } else if (expProperty.GetName() == "disableDoubleEncoding") { + ASSERT_TRUE(endpointResultAttrs->authScheme.GetDisableDoubleEncoding()); + ASSERT_EQ(expProperty.GetBoolValueNoCheck(), endpointResultAttrs->authScheme.GetDisableDoubleEncoding().value()); + } else { + FAIL() << "Unsupported Auth type property " << expProperty.GetName() << ". Need to update test."; + } + } + } + + EXPECT_EQ(expect.endpoint.headers.empty(), outcome.GetResult().GetHeaders().empty()); + for(const auto& expHeaderVec : expect.endpoint.headers) + { + const auto& retHeaderIt = outcome.GetResult().GetHeaders().find(expHeaderVec.first); + ASSERT_TRUE(retHeaderIt != outcome.GetResult().GetHeaders().end()); + + auto retHeaderVec = Aws::Utils::StringUtils::Split(retHeaderIt->second, ';'); + std::sort(retHeaderVec.begin(), retHeaderVec.end()); + + auto expHeaderVecSorted = expHeaderVec.second; + std::sort(expHeaderVecSorted.begin(), expHeaderVecSorted.end()); + + ASSERT_EQ(expHeaderVecSorted, retHeaderVec); + } + } +} + +TEST_P(ObservabilityAdminEndpointProviderTests, EndpointProviderTest) +{ + const size_t TEST_CASE_IDX = GetParam(); + ASSERT_LT(TEST_CASE_IDX, TEST_CASES->size()) << "Something is wrong with the test fixture itself."; + const ObservabilityAdminEndpointProviderEndpointTestCase& TEST_CASE = TEST_CASES->at(TEST_CASE_IDX); + SCOPED_TRACE(Aws::String("\nTEST CASE # ") + Aws::Utils::StringUtils::to_string(TEST_CASE_IDX) + ": " + TEST_CASE.documentation); + SCOPED_TRACE(Aws::String("\n--gtest_filter=EndpointTestsFromModel/ObservabilityAdminEndpointProviderTests.EndpointProviderTest/") + Aws::Utils::StringUtils::to_string(TEST_CASE_IDX)); + + std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG); + ASSERT_TRUE(endpointProvider) << "Failed to allocate/initialize ObservabilityAdminEndpointProvider"; + + EndpointParameters endpointParameters; + for(const auto& param : TEST_CASE.params) + { + endpointParameters.emplace(endpointParameters.end(), Aws::Endpoint::EndpointParameter(param)); + } + auto resolvedEndpointOutcome = endpointProvider->ResolveEndpoint(endpointParameters); + ValidateOutcome(resolvedEndpointOutcome, TEST_CASE.expect); + +#if 0 // temporarily disabled + for(const auto& operation : TEST_CASE.operationInput) + { + /* + * Most specific to least specific value locations: + staticContextParams + contextParam + clientContextParams + Built-In Bindings + Built-in binding default values + */ + const Aws::Vector> + operationInputParams = {std::cref(operation.builtinParams), std::cref(operation.clientParams), std::cref(operation.operationParams)}; + + for(const auto& paramSource : operationInputParams) + { + for(const auto& param : paramSource.get()) + { + endpointParameters.emplace(endpointParameters.end(), Aws::Endpoint::EndpointParameter(param)); + } + } + auto resolvedEndpointOutcomePerOperation = endpointProvider->ResolveEndpoint(endpointParameters); + ValidateOutcome(resolvedEndpointOutcomePerOperation, TEST_CASE.expect); + } +#endif +} + +INSTANTIATE_TEST_SUITE_P(EndpointTestsFromModel, + ObservabilityAdminEndpointProviderTests, + ::testing::Range((size_t) 0u, ObservabilityAdminEndpointProviderTests::TEST_CASES_SZ)); diff --git a/generated/tests/observabilityadmin-gen-tests/RunTests.cpp b/generated/tests/observabilityadmin-gen-tests/RunTests.cpp new file mode 100644 index 00000000000..f2f10a7c789 --- /dev/null +++ b/generated/tests/observabilityadmin-gen-tests/RunTests.cpp @@ -0,0 +1,29 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ + +#include +#include +#include +#include +#include + +int main(int argc, char** argv) +{ + Aws::SDKOptions options; + options.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Trace; + + AWS_BEGIN_MEMORY_TEST_EX(options, 1024, 128); + Aws::Testing::InitPlatformTest(options); + Aws::Testing::ParseArgs(argc, argv); + + Aws::InitAPI(options); + ::testing::InitGoogleTest(&argc, argv); + int exitCode = RUN_ALL_TESTS(); + Aws::ShutdownAPI(options); + + AWS_END_MEMORY_TEST_EX; + Aws::Testing::ShutdownPlatformTest(options); + return exitCode; +} diff --git a/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h b/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h index 1963f464481..3811a7b6c33 100644 --- a/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h +++ b/src/aws-cpp-sdk-core/include/aws/core/VersionConfig.h @@ -4,7 +4,7 @@ */ #pragma once -#define AWS_SDK_VERSION_STRING "1.11.456" +#define AWS_SDK_VERSION_STRING "1.11.457" #define AWS_SDK_VERSION_MAJOR 1 #define AWS_SDK_VERSION_MINOR 11 -#define AWS_SDK_VERSION_PATCH 456 +#define AWS_SDK_VERSION_PATCH 457 diff --git a/tools/code-generation/api-descriptions/bedrock-agent-2023-06-05.normal.json b/tools/code-generation/api-descriptions/bedrock-agent-2023-06-05.normal.json index 5594edf4970..b25133c33ef 100644 --- a/tools/code-generation/api-descriptions/bedrock-agent-2023-06-05.normal.json +++ b/tools/code-generation/api-descriptions/bedrock-agent-2023-06-05.normal.json @@ -2043,6 +2043,10 @@ "dimensions":{ "shape":"Dimensions", "documentation":"

    The dimensions details for the vector configuration used on the Bedrock embeddings model.

    " + }, + "embeddingDataType":{ + "shape":"EmbeddingDataType", + "documentation":"

    The data type for the vectors when using a model to convert text into vector embeddings. The model must support the specified data type for vector embeddings. Floating-point (float32) is the default data type, and is supported by most models for vector embeddings. See Supported embeddings models for information on the available models and their vector data types.

    " } }, "documentation":"

    The vector configuration details for the Bedrock embeddings model.

    " @@ -3677,6 +3681,14 @@ }, "documentation":"

    Details about duplicate connections found between two nodes in the flow.

    " }, + "EmbeddingDataType":{ + "type":"string", + "documentation":"

    Bedrock models embedding data type. Can be either float32 or binary

    ", + "enum":[ + "FLOAT32", + "BINARY" + ] + }, "EmbeddingModelConfiguration":{ "type":"structure", "members":{ diff --git a/tools/code-generation/api-descriptions/config-2014-11-12.normal.json b/tools/code-generation/api-descriptions/config-2014-11-12.normal.json index 0f20eea266c..02cf3e9e119 100644 --- a/tools/code-generation/api-descriptions/config-2014-11-12.normal.json +++ b/tools/code-generation/api-descriptions/config-2014-11-12.normal.json @@ -15,6 +15,21 @@ "auth":["aws.auth#sigv4"] }, "operations":{ + "AssociateResourceTypes":{ + "name":"AssociateResourceTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateResourceTypesRequest"}, + "output":{"shape":"AssociateResourceTypesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"NoSuchConfigurationRecorderException"} + ], + "documentation":"

    Adds all resource types specified in the ResourceTypes list to the RecordingGroup of specified configuration recorder and includes those resource types when recording.

    For this operation, the specified configuration recorder must use a RecordingStrategy that is either INCLUSION_BY_RESOURCE_TYPES or EXCLUSION_BY_RESOURCE_TYPES.

    " + }, "BatchGetAggregateResourceConfig":{ "name":"BatchGetAggregateResourceConfig", "http":{ @@ -66,7 +81,7 @@ {"shape":"NoSuchConfigRuleException"}, {"shape":"ResourceInUseException"} ], - "documentation":"

    Deletes the specified Config rule and all of its evaluation results.

    Config sets the state of a rule to DELETING until the deletion is complete. You cannot update a rule while it is in this state. If you make a PutConfigRule or DeleteConfigRule request for the rule, you will receive a ResourceInUseException.

    You can check the state of a rule by using the DescribeConfigRules request.

    " + "documentation":"

    Deletes the specified Config rule and all of its evaluation results.

    Config sets the state of a rule to DELETING until the deletion is complete. You cannot update a rule while it is in this state. If you make a PutConfigRule or DeleteConfigRule request for the rule, you will receive a ResourceInUseException.

    You can check the state of a rule by using the DescribeConfigRules request.

    Recommendation: Stop recording resource compliance before deleting rules

    It is highly recommended that you stop recording for the AWS::Config::ResourceCompliance resource type before you delete rules in your account. Deleting rules creates CIs for AWS::Config::ResourceCompliance and can affect your Config configuration recorder costs. If you are deleting rules which evaluate a large number of resource types, this can lead to a spike in the number of CIs recorded.

    Best practice:

    1. Stop recording AWS::Config::ResourceCompliance

    2. Delete rule(s)

    3. Turn on recording for AWS::Config::ResourceCompliance

    " }, "DeleteConfigurationAggregator":{ "name":"DeleteConfigurationAggregator", @@ -88,9 +103,10 @@ }, "input":{"shape":"DeleteConfigurationRecorderRequest"}, "errors":[ - {"shape":"NoSuchConfigurationRecorderException"} + {"shape":"NoSuchConfigurationRecorderException"}, + {"shape":"UnmodifiableEntityException"} ], - "documentation":"

    Deletes the configuration recorder.

    After the configuration recorder is deleted, Config will not record resource configuration changes until you create a new configuration recorder.

    This action does not delete the configuration information that was previously recorded. You will be able to access the previously recorded information by using the GetResourceConfigHistory action, but you will not be able to access this information in the Config console until you create a new configuration recorder.

    " + "documentation":"

    Deletes the customer managed configuration recorder.

    This operation does not delete the configuration information that was previously recorded. You will be able to access the previously recorded information by using the GetResourceConfigHistory operation, but you will not be able to access this information in the Config console until you have created a new customer managed configuration recorder.

    " }, "DeleteConformancePack":{ "name":"DeleteConformancePack", @@ -116,7 +132,7 @@ {"shape":"NoSuchDeliveryChannelException"}, {"shape":"LastDeliveryChannelDeleteFailedException"} ], - "documentation":"

    Deletes the delivery channel.

    Before you can delete the delivery channel, you must stop the configuration recorder by using the StopConfigurationRecorder action.

    " + "documentation":"

    Deletes the delivery channel.

    Before you can delete the delivery channel, you must stop the customer managed configuration recorder. You can use the StopConfigurationRecorder operation to stop the customer managed configuration recorder.

    " }, "DeleteEvaluationResults":{ "name":"DeleteEvaluationResults", @@ -227,6 +243,21 @@ ], "documentation":"

    Deletes the retention configuration.

    " }, + "DeleteServiceLinkedConfigurationRecorder":{ + "name":"DeleteServiceLinkedConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteServiceLinkedConfigurationRecorderRequest"}, + "output":{"shape":"DeleteServiceLinkedConfigurationRecorderResponse"}, + "errors":[ + {"shape":"NoSuchConfigurationRecorderException"}, + {"shape":"ValidationException"}, + {"shape":"ConflictException"} + ], + "documentation":"

    Deletes an existing service-linked configuration recorder.

    This operation does not delete the configuration information that was previously recorded. You will be able to access the previously recorded information by using the GetResourceConfigHistory operation, but you will not be able to access this information in the Config console until you have created a new service-linked configuration recorder for the same service.

    The recording scope determines if you receive configuration items

    The recording scope is set by the service that is linked to the configuration recorder and determines whether you receive configuration items (CIs) in the delivery channel. If the recording scope is internal, you will not receive CIs in the delivery channel.

    " + }, "DeleteStoredQuery":{ "name":"DeleteStoredQuery", "http":{ @@ -286,7 +317,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"NoSuchConfigurationAggregatorException"} ], - "documentation":"

    Returns a list of the conformance packs and their associated compliance status with the count of compliant and noncompliant Config rules within each conformance pack. Also returns the total rule count which includes compliant rules, noncompliant rules, and rules that cannot be evaluated due to insufficient data.

    The results can return an empty result page, but if you have a nextToken, the results are displayed on the next page.

    " + "documentation":"

    Returns a list of the existing and deleted conformance packs and their associated compliance status with the count of compliant and noncompliant Config rules within each conformance pack. Also returns the total rule count which includes compliant rules, noncompliant rules, and rules that cannot be evaluated due to insufficient data.

    The results can return an empty result page, but if you have a nextToken, the results are displayed on the next page.

    " }, "DescribeAggregationAuthorizations":{ "name":"DescribeAggregationAuthorizations", @@ -316,7 +347,7 @@ {"shape":"NoSuchConfigRuleException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

    Indicates whether the specified Config rules are compliant. If a rule is noncompliant, this action returns the number of Amazon Web Services resources that do not comply with the rule.

    A rule is compliant if all of the evaluated resources comply with it. It is noncompliant if any of these resources do not comply.

    If Config has no current evaluation results for the rule, it returns INSUFFICIENT_DATA. This result might indicate one of the following conditions:

    • Config has never invoked an evaluation for the rule. To check whether it has, use the DescribeConfigRuleEvaluationStatus action to get the LastSuccessfulInvocationTime and LastFailedInvocationTime.

    • The rule's Lambda function is failing to send evaluation results to Config. Verify that the role you assigned to your configuration recorder includes the config:PutEvaluations permission. If the rule is a custom rule, verify that the Lambda execution role includes the config:PutEvaluations permission.

    • The rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. This can occur if the resources were deleted or removed from the rule's scope.

    " + "documentation":"

    Indicates whether the specified Config rules are compliant. If a rule is noncompliant, this operation returns the number of Amazon Web Services resources that do not comply with the rule.

    A rule is compliant if all of the evaluated resources comply with it. It is noncompliant if any of these resources do not comply.

    If Config has no current evaluation results for the rule, it returns INSUFFICIENT_DATA. This result might indicate one of the following conditions:

    • Config has never invoked an evaluation for the rule. To check whether it has, use the DescribeConfigRuleEvaluationStatus action to get the LastSuccessfulInvocationTime and LastFailedInvocationTime.

    • The rule's Lambda function is failing to send evaluation results to Config. Verify that the role you assigned to your configuration recorder includes the config:PutEvaluations permission. If the rule is a custom rule, verify that the Lambda execution role includes the config:PutEvaluations permission.

    • The rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. This can occur if the resources were deleted or removed from the rule's scope.

    " }, "DescribeComplianceByResource":{ "name":"DescribeComplianceByResource", @@ -330,7 +361,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

    Indicates whether the specified Amazon Web Services resources are compliant. If a resource is noncompliant, this action returns the number of Config rules that the resource does not comply with.

    A resource is compliant if it complies with all the Config rules that evaluate it. It is noncompliant if it does not comply with one or more of these rules.

    If Config has no current evaluation results for the resource, it returns INSUFFICIENT_DATA. This result might indicate one of the following conditions about the rules that evaluate the resource:

    • Config has never invoked an evaluation for the rule. To check whether it has, use the DescribeConfigRuleEvaluationStatus action to get the LastSuccessfulInvocationTime and LastFailedInvocationTime.

    • The rule's Lambda function is failing to send evaluation results to Config. Verify that the role that you assigned to your configuration recorder includes the config:PutEvaluations permission. If the rule is a custom rule, verify that the Lambda execution role includes the config:PutEvaluations permission.

    • The rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. This can occur if the resources were deleted or removed from the rule's scope.

    " + "documentation":"

    Indicates whether the specified Amazon Web Services resources are compliant. If a resource is noncompliant, this operation returns the number of Config rules that the resource does not comply with.

    A resource is compliant if it complies with all the Config rules that evaluate it. It is noncompliant if it does not comply with one or more of these rules.

    If Config has no current evaluation results for the resource, it returns INSUFFICIENT_DATA. This result might indicate one of the following conditions about the rules that evaluate the resource:

    • Config has never invoked an evaluation for the rule. To check whether it has, use the DescribeConfigRuleEvaluationStatus action to get the LastSuccessfulInvocationTime and LastFailedInvocationTime.

    • The rule's Lambda function is failing to send evaluation results to Config. Verify that the role that you assigned to your configuration recorder includes the config:PutEvaluations permission. If the rule is a custom rule, verify that the Lambda execution role includes the config:PutEvaluations permission.

    • The rule's Lambda function has returned NOT_APPLICABLE for all evaluation results. This can occur if the resources were deleted or removed from the rule's scope.

    " }, "DescribeConfigRuleEvaluationStatus":{ "name":"DescribeConfigRuleEvaluationStatus", @@ -392,7 +423,7 @@ {"shape":"InvalidNextTokenException"}, {"shape":"InvalidLimitException"} ], - "documentation":"

    Returns the details of one or more configuration aggregators. If the configuration aggregator is not specified, this action returns the details for all the configuration aggregators associated with the account.

    " + "documentation":"

    Returns the details of one or more configuration aggregators. If the configuration aggregator is not specified, this operation returns the details for all the configuration aggregators associated with the account.

    " }, "DescribeConfigurationRecorderStatus":{ "name":"DescribeConfigurationRecorderStatus", @@ -403,9 +434,10 @@ "input":{"shape":"DescribeConfigurationRecorderStatusRequest"}, "output":{"shape":"DescribeConfigurationRecorderStatusResponse"}, "errors":[ - {"shape":"NoSuchConfigurationRecorderException"} + {"shape":"NoSuchConfigurationRecorderException"}, + {"shape":"ValidationException"} ], - "documentation":"

    Returns the current status of the specified configuration recorder as well as the status of the last recording event for the recorder. If a configuration recorder is not specified, this action returns the status of all configuration recorders associated with the account.

    >You can specify only one configuration recorder for each Amazon Web Services Region for each account. For a detailed status of recording events over time, add your Config events to Amazon CloudWatch metrics and use CloudWatch metrics.

    " + "documentation":"

    Returns the current status of the configuration recorder you specify as well as the status of the last recording event for the configuration recorders.

    For a detailed status of recording events over time, add your Config events to Amazon CloudWatch metrics and use CloudWatch metrics.

    If a configuration recorder is not specified, this operation returns the status for the customer managed configuration recorder configured for the account, if applicable.

    When making a request to this operation, you can only specify one configuration recorder.

    " }, "DescribeConfigurationRecorders":{ "name":"DescribeConfigurationRecorders", @@ -416,9 +448,10 @@ "input":{"shape":"DescribeConfigurationRecordersRequest"}, "output":{"shape":"DescribeConfigurationRecordersResponse"}, "errors":[ - {"shape":"NoSuchConfigurationRecorderException"} + {"shape":"NoSuchConfigurationRecorderException"}, + {"shape":"ValidationException"} ], - "documentation":"

    Returns the details for the specified configuration recorders. If the configuration recorder is not specified, this action returns the details for all configuration recorders associated with the account.

    You can specify only one configuration recorder for each Amazon Web Services Region for each account.

    " + "documentation":"

    Returns details for the configuration recorder you specify.

    If a configuration recorder is not specified, this operation returns details for the customer managed configuration recorder configured for the account, if applicable.

    When making a request to this operation, you can only specify one configuration recorder.

    " }, "DescribeConformancePackCompliance":{ "name":"DescribeConformancePackCompliance", @@ -479,7 +512,7 @@ "errors":[ {"shape":"NoSuchDeliveryChannelException"} ], - "documentation":"

    Returns the current status of the specified delivery channel. If a delivery channel is not specified, this action returns the current status of all delivery channels associated with the account.

    Currently, you can specify only one delivery channel per region in your account.

    " + "documentation":"

    Returns the current status of the specified delivery channel. If a delivery channel is not specified, this operation returns the current status of all delivery channels associated with the account.

    Currently, you can specify only one delivery channel per region in your account.

    " }, "DescribeDeliveryChannels":{ "name":"DescribeDeliveryChannels", @@ -492,7 +525,7 @@ "errors":[ {"shape":"NoSuchDeliveryChannelException"} ], - "documentation":"

    Returns details about the specified delivery channel. If a delivery channel is not specified, this action returns the details of all delivery channels associated with the account.

    Currently, you can specify only one delivery channel per region in your account.

    " + "documentation":"

    Returns details about the specified delivery channel. If a delivery channel is not specified, this operation returns the details of all delivery channels associated with the account.

    Currently, you can specify only one delivery channel per region in your account.

    " }, "DescribeOrganizationConfigRuleStatuses":{ "name":"DescribeOrganizationConfigRuleStatuses", @@ -625,7 +658,22 @@ {"shape":"NoSuchRetentionConfigurationException"}, {"shape":"InvalidNextTokenException"} ], - "documentation":"

    Returns the details of one or more retention configurations. If the retention configuration name is not specified, this action returns the details for all the retention configurations for that account.

    Currently, Config supports only one retention configuration per region in your account.

    " + "documentation":"

    Returns the details of one or more retention configurations. If the retention configuration name is not specified, this operation returns the details for all the retention configurations for that account.

    Currently, Config supports only one retention configuration per region in your account.

    " + }, + "DisassociateResourceTypes":{ + "name":"DisassociateResourceTypes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DisassociateResourceTypesRequest"}, + "output":{"shape":"DisassociateResourceTypesResponse"}, + "errors":[ + {"shape":"ValidationException"}, + {"shape":"ConflictException"}, + {"shape":"NoSuchConfigurationRecorderException"} + ], + "documentation":"

    Removes all resource types specified in the ResourceTypes list from the RecordingGroup of configuration recorder and excludes these resource types when recording.

    For this operation, the configuration recorder must use a RecordingStrategy that is either INCLUSION_BY_RESOURCE_TYPES or EXCLUSION_BY_RESOURCE_TYPES.

    " }, "GetAggregateComplianceDetailsByConfigRule":{ "name":"GetAggregateComplianceDetailsByConfigRule", @@ -705,7 +753,7 @@ {"shape":"OversizedConfigurationItemException"}, {"shape":"ResourceNotDiscoveredException"} ], - "documentation":"

    Returns configuration item that is aggregated for your specific resource in a specific source account and region.

    " + "documentation":"

    Returns configuration item that is aggregated for your specific resource in a specific source account and region.

    The API does not return results for deleted resources.

    " }, "GetComplianceDetailsByConfigRule":{ "name":"GetComplianceDetailsByConfigRule", @@ -924,6 +972,19 @@ ], "documentation":"

    Accepts a resource type and returns a list of resource identifiers that are aggregated for a specific resource type across accounts and regions. A resource identifier includes the resource type, ID, (if available) the custom resource name, source account, and source region. You can narrow the results to include only resources that have specific resource IDs, or a resource name, or source account ID, or source region.

    For example, if the input consists of accountID 12345678910 and the region is us-east-1 for resource type AWS::EC2::Instance then the API returns all the EC2 instance identifiers of accountID 12345678910 and region us-east-1.

    " }, + "ListConfigurationRecorders":{ + "name":"ListConfigurationRecorders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListConfigurationRecordersRequest"}, + "output":{"shape":"ListConfigurationRecordersResponse"}, + "errors":[ + {"shape":"ValidationException"} + ], + "documentation":"

    Returns a list of configuration recorders depending on the filters you specify.

    " + }, "ListConformancePackComplianceScores":{ "name":"ListConformancePackComplianceScores", "http":{ @@ -1011,7 +1072,7 @@ "errors":[ {"shape":"InvalidParameterValueException"} ], - "documentation":"

    Authorizes the aggregator account and region to collect data from the source account and region.

    PutAggregationAuthorization is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    " + "documentation":"

    Authorizes the aggregator account and region to collect data from the source account and region.

    Tags are added at creation and cannot be updated with this operation

    PutAggregationAuthorization is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    Use TagResource and UntagResource to update tags after creation.

    " }, "PutConfigRule":{ "name":"PutConfigRule", @@ -1027,7 +1088,7 @@ {"shape":"InsufficientPermissionsException"}, {"shape":"NoAvailableConfigurationRecorderException"} ], - "documentation":"

    Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

    There are two types of rules: Config Managed Rules and Config Custom Rules. You can use PutConfigRule to create both Config Managed Rules and Config Custom Rules.

    Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the SourceIdentifier key.

    Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom rules created with Guard are called Config Custom Policy Rules.

    If you are adding a new Config Custom Lambda rule, you first need to create an Lambda function that the rule invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN in the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

    For any new Config rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

    If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

    For more information about developing and using Config rules, see Evaluating Resources with Config Rules in the Config Developer Guide.

    PutConfigRule is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    " + "documentation":"

    Adds or updates an Config rule to evaluate if your Amazon Web Services resources comply with your desired configurations. For information on how many Config rules you can have per account, see Service Limits in the Config Developer Guide.

    There are two types of rules: Config Managed Rules and Config Custom Rules. You can use PutConfigRule to create both Config Managed Rules and Config Custom Rules.

    Config Managed Rules are predefined, customizable rules created by Config. For a list of managed rules, see List of Config Managed Rules. If you are adding an Config managed rule, you must specify the rule's identifier for the SourceIdentifier key.

    Config Custom Rules are rules that you create from scratch. There are two ways to create Config custom rules: with Lambda functions ( Lambda Developer Guide) and with Guard (Guard GitHub Repository), a policy-as-code language. Config custom rules created with Lambda are called Config Custom Lambda Rules and Config custom rules created with Guard are called Config Custom Policy Rules.

    If you are adding a new Config Custom Lambda rule, you first need to create an Lambda function that the rule invokes to evaluate your resources. When you use PutConfigRule to add a Custom Lambda rule to Config, you must specify the Amazon Resource Name (ARN) that Lambda assigns to the function. You specify the ARN in the SourceIdentifier key. This key is part of the Source object, which is part of the ConfigRule object.

    For any new Config rule that you add, specify the ConfigRuleName in the ConfigRule object. Do not specify the ConfigRuleArn or the ConfigRuleId. These values are generated by Config for new rules.

    If you are updating a rule that you added previously, you can specify the rule by ConfigRuleName, ConfigRuleId, or ConfigRuleArn in the ConfigRule data type that you use in this request.

    For more information about developing and using Config rules, see Evaluating Resources with Config Rules in the Config Developer Guide.

    Tags are added at creation and cannot be updated with this operation

    PutConfigRule is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    Use TagResource and UntagResource to update tags after creation.

    " }, "PutConfigurationAggregator":{ "name":"PutConfigurationAggregator", @@ -1045,7 +1106,7 @@ {"shape":"NoAvailableOrganizationException"}, {"shape":"OrganizationAllFeaturesNotEnabledException"} ], - "documentation":"

    Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

    accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

    Config should be enabled in source accounts and regions you want to aggregate.

    If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

    To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

    PutConfigurationAggregator is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    " + "documentation":"

    Creates and updates the configuration aggregator with the selected source accounts and regions. The source account can be individual account(s) or an organization.

    accountIds that are passed will be replaced with existing accounts. If you want to add additional accounts into the aggregator, call DescribeConfigurationAggregators to get the previous accounts and then append new ones.

    Config should be enabled in source accounts and regions you want to aggregate.

    If your source type is an organization, you must be signed in to the management account or a registered delegated administrator and all the features must be enabled in your organization. If the caller is a management account, Config calls EnableAwsServiceAccess API to enable integration between Config and Organizations. If the caller is a registered delegated administrator, Config calls ListDelegatedAdministrators API to verify whether the caller is a valid delegated administrator.

    To register a delegated administrator, see Register a Delegated Administrator in the Config developer guide.

    Tags are added at creation and cannot be updated with this operation

    PutConfigurationAggregator is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    Use TagResource and UntagResource to update tags after creation.

    " }, "PutConfigurationRecorder":{ "name":"PutConfigurationRecorder", @@ -1059,9 +1120,10 @@ {"shape":"ValidationException"}, {"shape":"InvalidConfigurationRecorderNameException"}, {"shape":"InvalidRoleException"}, - {"shape":"InvalidRecordingGroupException"} + {"shape":"InvalidRecordingGroupException"}, + {"shape":"UnmodifiableEntityException"} ], - "documentation":"

    Creates a new configuration recorder to record configuration changes for specified resource types.

    You can also use this action to change the roleARN or the recordingGroup of an existing recorder. For more information, see Managing the Configuration Recorder in the Config Developer Guide.

    You can specify only one configuration recorder for each Amazon Web Services Region for each account.

    If the configuration recorder does not have the recordingGroup field specified, the default is to record all supported resource types.

    " + "documentation":"

    Creates or updates the customer managed configuration recorder.

    You can use this operation to create a new customer managed configuration recorder or to update the roleARN and the recordingGroup for an existing customer managed configuration recorder.

    To start the customer managed configuration recorder and begin recording configuration changes for the resource types you specify, use the StartConfigurationRecorder operation.

    For more information, see Working with the Configuration Recorder in the Config Developer Guide.

    One customer managed configuration recorder per account per Region

    You can create only one customer managed configuration recorder for each account for each Amazon Web Services Region.

    Default is to record all supported resource types, excluding the global IAM resource types

    If you have not specified values for the recordingGroup field, the default for the customer managed configuration recorder is to record all supported resource types, excluding the global IAM resource types: AWS::IAM::Group, AWS::IAM::Policy, AWS::IAM::Role, and AWS::IAM::User.

    Tags are added at creation and cannot be updated

    PutConfigurationRecorder is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    Use TagResource and UntagResource to update tags after creation.

    " }, "PutConformancePack":{ "name":"PutConformancePack", @@ -1097,7 +1159,7 @@ {"shape":"InvalidSNSTopicARNException"}, {"shape":"InsufficientDeliveryPolicyException"} ], - "documentation":"

    Creates a delivery channel object to deliver configuration information and other compliance information to an Amazon S3 bucket and Amazon SNS topic. For more information, see Notifications that Config Sends to an Amazon SNS topic.

    Before you can create a delivery channel, you must create a configuration recorder.

    You can use this action to change the Amazon S3 bucket or an Amazon SNS topic of the existing delivery channel. To change the Amazon S3 bucket or an Amazon SNS topic, call this action and specify the changed values for the S3 bucket and the SNS topic. If you specify a different value for either the S3 bucket or the SNS topic, this action will keep the existing value for the parameter that is not changed.

    You can have only one delivery channel per region in your account.

    " + "documentation":"

    Creates or updates a delivery channel to deliver configuration information and other compliance information.

    You can use this operation to create a new delivery channel or to update the Amazon S3 bucket and the Amazon SNS topic of an existing delivery channel.

    For more information, see Working with the Delivery Channel in the Config Developer Guide.

    One delivery channel per account per Region

    You can have only one delivery channel for each account for each Amazon Web Services Region.

    " }, "PutEvaluations":{ "name":"PutEvaluations", @@ -1112,7 +1174,7 @@ {"shape":"InvalidResultTokenException"}, {"shape":"NoSuchConfigRuleException"} ], - "documentation":"

    Used by an Lambda function to deliver evaluation results to Config. This action is required in every Lambda function that is invoked by an Config rule.

    " + "documentation":"

    Used by an Lambda function to deliver evaluation results to Config. This operation is required in every Lambda function that is invoked by an Config rule.

    " }, "PutExternalEvaluation":{ "name":"PutExternalEvaluation", @@ -1194,7 +1256,7 @@ {"shape":"InvalidParameterValueException"}, {"shape":"InsufficientPermissionsException"} ], - "documentation":"

    A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specified resource with a specified Config rule.

    Exceptions block auto remediation

    Config generates a remediation exception when a problem occurs running a remediation action for a specified resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

    Manual remediation is recommended when placing an exception

    When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual remediation until the given Config rule for the specified resource evaluates the resource as NON_COMPLIANT. Once the resource has been evaluated as NON_COMPLIANT, you can add remediation exceptions and change the remediation type back from Manual to Auto if you want to use auto-remediation. Otherwise, using auto-remediation before a NON_COMPLIANT evaluation result can delete resources before the exception is applied.

    Exceptions can only be performed on non-compliant resources

    Placing an exception can only be performed on resources that are NON_COMPLIANT. If you use this API for COMPLIANT resources or resources that are NOT_APPLICABLE, a remediation exception will not be generated. For more information on the conditions that initiate the possible Config evaluation results, see Concepts | Config Rules in the Config Developer Guide.

    Auto remediation can be initiated even for compliant resources

    If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations API or the Config console, it initiates the remediation process for all non-compliant resources for that specific rule. The auto remediation process relies on the compliance data snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot schedule will continue to be remediated based on the last known compliance data snapshot.

    This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap processor uses a database that can have stale evaluation results based on the last known compliance data snapshot.

    " + "documentation":"

    A remediation exception is when a specified resource is no longer considered for auto-remediation. This API adds a new exception or updates an existing exception for a specified resource with a specified Config rule.

    Exceptions block auto remediation

    Config generates a remediation exception when a problem occurs running a remediation action for a specified resource. Remediation exceptions blocks auto-remediation until the exception is cleared.

    Manual remediation is recommended when placing an exception

    When placing an exception on an Amazon Web Services resource, it is recommended that remediation is set as manual remediation until the given Config rule for the specified resource evaluates the resource as NON_COMPLIANT. Once the resource has been evaluated as NON_COMPLIANT, you can add remediation exceptions and change the remediation type back from Manual to Auto if you want to use auto-remediation. Otherwise, using auto-remediation before a NON_COMPLIANT evaluation result can delete resources before the exception is applied.

    Exceptions can only be performed on non-compliant resources

    Placing an exception can only be performed on resources that are NON_COMPLIANT. If you use this API for COMPLIANT resources or resources that are NOT_APPLICABLE, a remediation exception will not be generated. For more information on the conditions that initiate the possible Config evaluation results, see Concepts | Config Rules in the Config Developer Guide.

    Exceptions cannot be placed on service-linked remediation actions

    You cannot place an exception on service-linked remediation actions, such as remediation actions put by an organizational conformance pack.

    Auto remediation can be initiated even for compliant resources

    If you enable auto remediation for a specific Config rule using the PutRemediationConfigurations API or the Config console, it initiates the remediation process for all non-compliant resources for that specific rule. The auto remediation process relies on the compliance data snapshot which is captured on a periodic basis. Any non-compliant resource that is updated between the snapshot schedule will continue to be remediated based on the last known compliance data snapshot.

    This means that in some cases auto remediation can be initiated even for compliant resources, since the bootstrap processor uses a database that can have stale evaluation results based on the last known compliance data snapshot.

    " }, "PutResourceConfig":{ "name":"PutResourceConfig", @@ -1225,6 +1287,22 @@ ], "documentation":"

    Creates and updates the retention configuration with details about retention period (number of days) that Config stores your historical information. The API creates the RetentionConfiguration object and names the object as default. When you have a RetentionConfiguration object named default, calling the API modifies the default object.

    Currently, Config supports only one retention configuration per region in your account.

    " }, + "PutServiceLinkedConfigurationRecorder":{ + "name":"PutServiceLinkedConfigurationRecorder", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"PutServiceLinkedConfigurationRecorderRequest"}, + "output":{"shape":"PutServiceLinkedConfigurationRecorderResponse"}, + "errors":[ + {"shape":"ConflictException"}, + {"shape":"InsufficientPermissionsException"}, + {"shape":"LimitExceededException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Creates a service-linked configuration recorder that is linked to a specific Amazon Web Services service based on the ServicePrincipal you specify.

    The configuration recorder's name, recordingGroup, recordingMode, and recordingScope is set by the service that is linked to the configuration recorder.

    For more information, see Working with the Configuration Recorder in the Config Developer Guide.

    This API creates a service-linked role AWSServiceRoleForConfig in your account. The service-linked role is created only when the role does not exist in your account.

    The recording scope determines if you receive configuration items

    The recording scope is set by the service that is linked to the configuration recorder and determines whether you receive configuration items (CIs) in the delivery channel. If the recording scope is internal, you will not receive CIs in the delivery channel.

    Tags are added at creation and cannot be updated with this operation

    Use TagResource and UntagResource to update tags after creation.

    " + }, "PutStoredQuery":{ "name":"PutStoredQuery", "http":{ @@ -1238,7 +1316,7 @@ {"shape":"TooManyTagsException"}, {"shape":"ResourceConcurrentModificationException"} ], - "documentation":"

    Saves a new query or updates an existing saved query. The QueryName must be unique for a single Amazon Web Services account and a single Amazon Web Services Region. You can create upto 300 queries in a single Amazon Web Services account and a single Amazon Web Services Region.

    PutStoredQuery is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    " + "documentation":"

    Saves a new query or updates an existing saved query. The QueryName must be unique for a single Amazon Web Services account and a single Amazon Web Services Region. You can create upto 300 queries in a single Amazon Web Services account and a single Amazon Web Services Region.

    Tags are added at creation and cannot be updated

    PutStoredQuery is an idempotent API. Subsequent requests won’t create a duplicate resource if one was already created. If a following request has different tags values, Config will ignore these differences and treat it as an idempotent request of the previous. In this case, tags will not be updated, even if they are different.

    " }, "SelectAggregateResourceConfig":{ "name":"SelectAggregateResourceConfig", @@ -1296,9 +1374,10 @@ "input":{"shape":"StartConfigurationRecorderRequest"}, "errors":[ {"shape":"NoSuchConfigurationRecorderException"}, - {"shape":"NoAvailableDeliveryChannelException"} + {"shape":"NoAvailableDeliveryChannelException"}, + {"shape":"UnmodifiableEntityException"} ], - "documentation":"

    Starts recording configurations of the Amazon Web Services resources you have selected to record in your Amazon Web Services account.

    You must have created at least one delivery channel to successfully start the configuration recorder.

    " + "documentation":"

    Starts the customer managed configuration recorder. The customer managed configuration recorder will begin recording configuration changes for the resource types you specify.

    You must have created a delivery channel to successfully start the customer managed configuration recorder. You can use the PutDeliveryChannel operation to create a delivery channel.

    " }, "StartRemediationExecution":{ "name":"StartRemediationExecution", @@ -1337,9 +1416,10 @@ }, "input":{"shape":"StopConfigurationRecorderRequest"}, "errors":[ - {"shape":"NoSuchConfigurationRecorderException"} + {"shape":"NoSuchConfigurationRecorderException"}, + {"shape":"UnmodifiableEntityException"} ], - "documentation":"

    Stops recording configurations of the Amazon Web Services resources you have selected to record in your Amazon Web Services account.

    " + "documentation":"

    Stops the customer managed configuration recorder. The customer managed configuration recorder will stop recording configuration changes for the resource types you have specified.

    " }, "TagResource":{ "name":"TagResource", @@ -1353,7 +1433,7 @@ {"shape":"ResourceNotFoundException"}, {"shape":"TooManyTagsException"} ], - "documentation":"

    Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. If existing tags are specified, however, then their values will be updated. When a resource is deleted, the tags associated with that resource are deleted as well.

    " + "documentation":"

    Associates the specified tags to a resource with the specified ResourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. If existing tags are specified, however, then their values will be updated. When a resource is deleted, the tags associated with that resource are deleted as well.

    " }, "UntagResource":{ "name":"UntagResource", @@ -1726,6 +1806,52 @@ "type":"list", "member":{"shape":"AggregationAuthorization"} }, + "AggregatorFilterResourceType":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"AggregatorFilterType", + "documentation":"

    The type of resource type filter to apply. INCLUDE specifies that the list of resource types in the Value field will be aggregated and no other resource types will be filtered.

    " + }, + "Value":{ + "shape":"ResourceTypeValueList", + "documentation":"

    Comma-separate list of resource types to filter your aggregated configuration recorders.

    " + } + }, + "documentation":"

    An object to filter the configuration recorders based on the resource types in scope for recording.

    " + }, + "AggregatorFilterServicePrincipal":{ + "type":"structure", + "members":{ + "Type":{ + "shape":"AggregatorFilterType", + "documentation":"

    The type of service principal filter to apply. INCLUDE specifies that the list of service principals in the Value field will be aggregated and no other service principals will be filtered.

    " + }, + "Value":{ + "shape":"ServicePrincipalValueList", + "documentation":"

    Comma-separated list of service principals for the linked Amazon Web Services services to filter your aggregated service-linked configuration recorders.

    " + } + }, + "documentation":"

    An object to filter service-linked configuration recorders in an aggregator based on the linked Amazon Web Services service.

    " + }, + "AggregatorFilterType":{ + "type":"string", + "enum":["INCLUDE"] + }, + "AggregatorFilters":{ + "type":"structure", + "members":{ + "ResourceType":{ + "shape":"AggregatorFilterResourceType", + "documentation":"

    An object to filter the configuration recorders based on the resource types in scope for recording.

    " + }, + "ServicePrincipal":{ + "shape":"AggregatorFilterServicePrincipal", + "documentation":"

    An object to filter service-linked configuration recorders in an aggregator based on the linked Amazon Web Services service.

    " + } + }, + "documentation":"

    An object to filter the data you specify for an aggregator.

    " + }, "AggregatorRegionList":{ "type":"list", "member":{"shape":"String"}, @@ -1742,6 +1868,30 @@ "max":256, "min":0 }, + "AssociateResourceTypesRequest":{ + "type":"structure", + "required":[ + "ConfigurationRecorderArn", + "ResourceTypes" + ], + "members":{ + "ConfigurationRecorderArn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the specified configuration recorder.

    " + }, + "ResourceTypes":{ + "shape":"ResourceTypeList", + "documentation":"

    The list of resource types you want to add to the recording group of the specified configuration recorder.

    " + } + } + }, + "AssociateResourceTypesResponse":{ + "type":"structure", + "required":["ConfigurationRecorder"], + "members":{ + "ConfigurationRecorder":{"shape":"ConfigurationRecorder"} + } + }, "AutoRemediationAttemptSeconds":{ "type":"long", "box":true, @@ -2224,7 +2374,7 @@ "documentation":"

    The time Config last attempted to deliver a debug log for your Config Custom Policy rules.

    " } }, - "documentation":"

    Status information for your Config Managed rules and Config Custom Policy rules. The status includes information such as the last time the rule ran, the last time it failed, and the related error for the last failure.

    This action does not return status information about Config Custom Lambda rules.

    " + "documentation":"

    Status information for your Config Managed rules and Config Custom Policy rules. The status includes information such as the last time the rule ran, the last time it failed, and the related error for the last failure.

    This operation does not return status information about Config Custom Lambda rules.

    " }, "ConfigRuleEvaluationStatusList":{ "type":"list", @@ -2318,6 +2468,10 @@ "CreatedBy":{ "shape":"StringWithCharLimit256", "documentation":"

    Amazon Web Services service that created the configuration aggregator.

    " + }, + "AggregatorFilters":{ + "shape":"AggregatorFilters", + "documentation":"

    An object to filter the data you specify for an aggregator.

    " } }, "documentation":"

    The details about the configuration aggregator, including information about source accounts, regions, and metadata of the aggregator.

    " @@ -2448,24 +2602,66 @@ "ConfigurationRecorder":{ "type":"structure", "members":{ + "arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the specified configuration recorder.

    " + }, "name":{ "shape":"RecorderName", - "documentation":"

    The name of the configuration recorder. Config automatically assigns the name of \"default\" when creating the configuration recorder.

    You cannot change the name of the configuration recorder after it has been created. To change the configuration recorder name, you must delete it and create a new configuration recorder with a new name.

    " + "documentation":"

    The name of the configuration recorder.

    For customer managed configuration recorders, Config automatically assigns the name of \"default\" when creating a configuration recorder if you do not specify a name at creation time.

    For service-linked configuration recorders, Config automatically assigns a name that has the prefix \"AWS\" to a new service-linked configuration recorder.

    Changing the name of a configuration recorder

    To change the name of the customer managed configuration recorder, you must delete it and create a new customer managed configuration recorder with a new name.

    You cannot change the name of a service-linked configuration recorder.

    " }, "roleARN":{ "shape":"String", - "documentation":"

    Amazon Resource Name (ARN) of the IAM role assumed by Config and used by the configuration recorder.

    While the API model does not require this field, the server will reject a request without a defined roleARN for the configuration recorder.

    Pre-existing Config role

    If you have used an Amazon Web Services service that uses Config, such as Security Hub or Control Tower, and an Config role has already been created, make sure that the IAM role that you use when setting up Config keeps the same minimum permissions as the already created Config role. You must do this so that the other Amazon Web Services service continues to run as expected.

    For example, if Control Tower has an IAM role that allows Config to read Amazon Simple Storage Service (Amazon S3) objects, make sure that the same permissions are granted within the IAM role you use when setting up Config. Otherwise, it may interfere with how Control Tower operates. For more information about IAM roles for Config, see Identity and Access Management for Config in the Config Developer Guide.

    " + "documentation":"

    The Amazon Resource Name (ARN) of the IAM role assumed by Config and used by the specified configuration recorder.

    The server will reject a request without a defined roleARN for the configuration recorder

    While the API model does not require this field, the server will reject a request without a defined roleARN for the configuration recorder.

    Policies and compliance results

    IAM policies and other policies managed in Organizations can impact whether Config has permissions to record configuration changes for your resources. Additionally, rules directly evaluate the configuration of a resource and rules don't take into account these policies when running evaluations. Make sure that the policies in effect align with how you intend to use Config.

    Keep Minimum Permisions When Reusing an IAM role

    If you use an Amazon Web Services service that uses Config, such as Security Hub or Control Tower, and an IAM role has already been created, make sure that the IAM role that you use when setting up Config keeps the same minimum permissions as the pre-existing IAM role. You must do this to ensure that the other Amazon Web Services service continues to run as expected.

    For example, if Control Tower has an IAM role that allows Config to read S3 objects, make sure that the same permissions are granted to the IAM role you use when setting up Config. Otherwise, it may interfere with how Control Tower operates.

    The service-linked IAM role for Config must be used for service-linked configuration recorders

    For service-linked configuration recorders, you must use the service-linked IAM role for Config: AWSServiceRoleForConfig.

    " }, "recordingGroup":{ "shape":"RecordingGroup", - "documentation":"

    Specifies which resource types Config records for configuration changes.

    High Number of Config Evaluations

    You may notice increased activity in your account during your initial month recording with Config when compared to subsequent months. During the initial bootstrapping process, Config runs evaluations on all the resources in your account that you have selected for Config to record.

    If you are running ephemeral workloads, you may see increased activity from Config as it records configuration changes associated with creating and deleting these temporary resources. An ephemeral workload is a temporary use of computing resources that are loaded and run when needed. Examples include Amazon Elastic Compute Cloud (Amazon EC2) Spot Instances, Amazon EMR jobs, and Auto Scaling. If you want to avoid the increased activity from running ephemeral workloads, you can run these types of workloads in a separate account with Config turned off to avoid increased configuration recording and rule evaluations.

    " + "documentation":"

    Specifies which resource types are in scope for the configuration recorder to record.

    High Number of Config Evaluations

    You might notice increased activity in your account during your initial month recording with Config when compared to subsequent months. During the initial bootstrapping process, Config runs evaluations on all the resources in your account that you have selected for Config to record.

    If you are running ephemeral workloads, you may see increased activity from Config as it records configuration changes associated with creating and deleting these temporary resources. An ephemeral workload is a temporary use of computing resources that are loaded and run when needed. Examples include Amazon Elastic Compute Cloud (Amazon EC2) Spot Instances, Amazon EMR jobs, and Auto Scaling.

    If you want to avoid the increased activity from running ephemeral workloads, you can set up the configuration recorder to exclude these resource types from being recorded, or run these types of workloads in a separate account with Config turned off to avoid increased configuration recording and rule evaluations.

    " }, "recordingMode":{ "shape":"RecordingMode", - "documentation":"

    Specifies the default recording frequency that Config uses to record configuration changes. Config supports Continuous recording and Daily recording.

    • Continuous recording allows you to record configuration changes continuously whenever a change occurs.

    • Daily recording allows you to receive a configuration item (CI) representing the most recent state of your resources over the last 24-hour period, only if it’s different from the previous CI recorded.

    Firewall Manager depends on continuous recording to monitor your resources. If you are using Firewall Manager, it is recommended that you set the recording frequency to Continuous.

    You can also override the recording frequency for specific resource types.

    " + "documentation":"

    Specifies the default recording frequency for the configuration recorder. Config supports Continuous recording and Daily recording.

    • Continuous recording allows you to record configuration changes continuously whenever a change occurs.

    • Daily recording allows you to receive a configuration item (CI) representing the most recent state of your resources over the last 24-hour period, only if it’s different from the previous CI recorded.

    Some resource types require continuous recording

    Firewall Manager depends on continuous recording to monitor your resources. If you are using Firewall Manager, it is recommended that you set the recording frequency to Continuous.

    You can also override the recording frequency for specific resource types.

    " + }, + "recordingScope":{ + "shape":"RecordingScope", + "documentation":"

    Specifies whether the ConfigurationItems in scope for the specified configuration recorder are recorded for free (INTERNAL) or if it impacts the costs to your bill (PAID).

    " + }, + "servicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    For service-linked configuration recorders, specifies the linked Amazon Web Services service for the configuration recorder.

    " + } + }, + "documentation":"

    Records configuration changes to the resource types in scope.

    For more information about the configuration recorder, see Working with the Configuration Recorder in the Config Developer Guide.

    " + }, + "ConfigurationRecorderFilter":{ + "type":"structure", + "members":{ + "filterName":{ + "shape":"ConfigurationRecorderFilterName", + "documentation":"

    The name of the type of filter. Currently, only recordingScope is supported.

    " + }, + "filterValue":{ + "shape":"ConfigurationRecorderFilterValues", + "documentation":"

    The value of the filter. For recordingScope, valid values include: INTERNAL and PAID.

    INTERNAL indicates that the ConfigurationItems in scope for the configuration recorder are recorded for free.

    PAID indicates that the ConfigurationItems in scope for the configuration recorder impact the costs to your bill.

    " } }, - "documentation":"

    Records configuration changes to your specified resource types. For more information about the configuration recorder, see Managing the Configuration Recorder in the Config Developer Guide.

    " + "documentation":"

    Filters configuration recorders by recording scope.

    " + }, + "ConfigurationRecorderFilterList":{ + "type":"list", + "member":{"shape":"ConfigurationRecorderFilter"} + }, + "ConfigurationRecorderFilterName":{ + "type":"string", + "enum":["recordingScope"] + }, + "ConfigurationRecorderFilterValue":{ + "type":"string", + "pattern":"^[0-9a-zA-Z\\\\*\\\\.\\\\\\/\\\\?-]*$" + }, + "ConfigurationRecorderFilterValues":{ + "type":"list", + "member":{"shape":"ConfigurationRecorderFilterValue"} }, "ConfigurationRecorderList":{ "type":"list", @@ -2478,6 +2674,10 @@ "ConfigurationRecorderStatus":{ "type":"structure", "members":{ + "arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the configuration recorder.

    " + }, "name":{ "shape":"String", "documentation":"

    The name of the configuration recorder.

    " @@ -2509,15 +2709,57 @@ "lastStatusChangeTime":{ "shape":"Date", "documentation":"

    The time of the latest change in status of an recording event processed by the recorder.

    " + }, + "servicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    For service-linked configuration recorders, the service principal of the linked Amazon Web Services service.

    " } }, - "documentation":"

    The current status of the configuration recorder.

    For a detailed status of recording events over time, add your Config events to CloudWatch metrics and use CloudWatch metrics.

    " + "documentation":"

    The current status of the configuration recorder.

    For a detailed status of recording events over time, add your Config events to CloudWatch metrics and use CloudWatch metrics.

    " }, "ConfigurationRecorderStatusList":{ "type":"list", "member":{"shape":"ConfigurationRecorderStatus"} }, + "ConfigurationRecorderSummaries":{ + "type":"list", + "member":{"shape":"ConfigurationRecorderSummary"} + }, + "ConfigurationRecorderSummary":{ + "type":"structure", + "required":[ + "arn", + "name", + "recordingScope" + ], + "members":{ + "arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the configuration recorder.

    " + }, + "name":{ + "shape":"RecorderName", + "documentation":"

    The name of the configuration recorder.

    " + }, + "servicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    For service-linked configuration recorders, indicates which Amazon Web Services service the configuration recorder is linked to.

    " + }, + "recordingScope":{ + "shape":"RecordingScope", + "documentation":"

    Indicates whether the ConfigurationItems in scope for the configuration recorder are recorded for free (INTERNAL) or if you are charged a service fee for recording (PAID).

    " + } + }, + "documentation":"

    A summary of a configuration recorder, including the arn, name, servicePrincipal, and recordingScope.

    " + }, "ConfigurationStateId":{"type":"string"}, + "ConflictException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    For PutServiceLinkedConfigurationRecorder, you cannot create a service-linked recorder because a service-linked recorder already exists for the specified service.

    For DeleteServiceLinkedConfigurationRecorder, you cannot delete the service-linked recorder because it is currently in use by the linked Amazon Web Services service.

    For DeleteDeliveryChannel, you cannot delete the specified delivery channel because the customer managed configuration recorder is running. Use the StopConfigurationRecorder operation to stop the customer managed configuration recorder.

    For AssociateResourceTypes and DisassociateResourceTypes, one of the following errors:

    • For service-linked configuration recorders, the configuration recorder is not in use by the service. No association or dissociation of resource types is permitted.

    • For service-linked configuration recorders, your requested change to the configuration recorder has been denied by its linked Amazon Web Services service.

    ", + "exception":true + }, "ConformancePackArn":{ "type":"string", "max":2048, @@ -2959,10 +3201,10 @@ "members":{ "ConfigurationRecorderName":{ "shape":"RecorderName", - "documentation":"

    The name of the configuration recorder to be deleted. You can retrieve the name of your configuration recorder by using the DescribeConfigurationRecorders action.

    " + "documentation":"

    The name of the customer managed configuration recorder that you want to delete. You can retrieve the name of your configuration recorders by using the DescribeConfigurationRecorders operation.

    " } }, - "documentation":"

    The request object for the DeleteConfigurationRecorder action.

    " + "documentation":"

    The request object for the DeleteConfigurationRecorder operation.

    " }, "DeleteConformancePackRequest":{ "type":"structure", @@ -2980,7 +3222,7 @@ "members":{ "DeliveryChannelName":{ "shape":"ChannelName", - "documentation":"

    The name of the delivery channel to delete.

    " + "documentation":"

    The name of the delivery channel that you want to delete.

    " } }, "documentation":"

    The input for the DeleteDeliveryChannel action. The action accepts the following data, in JSON format.

    " @@ -3111,6 +3353,33 @@ } } }, + "DeleteServiceLinkedConfigurationRecorderRequest":{ + "type":"structure", + "required":["ServicePrincipal"], + "members":{ + "ServicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    The service principal of the Amazon Web Services service for the service-linked configuration recorder that you want to delete.

    " + } + } + }, + "DeleteServiceLinkedConfigurationRecorderResponse":{ + "type":"structure", + "required":[ + "Arn", + "Name" + ], + "members":{ + "Arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the specified configuration recorder.

    " + }, + "Name":{ + "shape":"RecorderName", + "documentation":"

    The name of the specified configuration recorder.

    " + } + } + }, "DeleteStoredQueryRequest":{ "type":"structure", "required":["QueryName"], @@ -3362,7 +3631,7 @@ "members":{ "ResourceType":{ "shape":"StringWithCharLimit256", - "documentation":"

    The types of Amazon Web Services resources for which you want compliance information (for example, AWS::EC2::Instance). For this action, you can specify that the resource type is an Amazon Web Services account by specifying AWS::::Account.

    " + "documentation":"

    The types of Amazon Web Services resources for which you want compliance information (for example, AWS::EC2::Instance). For this operation, you can specify that the resource type is an Amazon Web Services account by specifying AWS::::Account.

    " }, "ResourceId":{ "shape":"BaseResourceId", @@ -3541,7 +3810,15 @@ "members":{ "ConfigurationRecorderNames":{ "shape":"ConfigurationRecorderNameList", - "documentation":"

    The name(s) of the configuration recorder. If the name is not specified, the action returns the current status of all the configuration recorders associated with the account.

    " + "documentation":"

    The name of the configuration recorder. If the name is not specified, the opertation returns the status for the customer managed configuration recorder configured for the account, if applicable.

    When making a request to this operation, you can only specify one configuration recorder.

    " + }, + "ServicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    For service-linked configuration recorders, you can use the service principal of the linked Amazon Web Services service to specify the configuration recorder.

    " + }, + "Arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the configuration recorder that you want to specify.

    " } }, "documentation":"

    The input for the DescribeConfigurationRecorderStatus action.

    " @@ -3561,7 +3838,15 @@ "members":{ "ConfigurationRecorderNames":{ "shape":"ConfigurationRecorderNameList", - "documentation":"

    A list of configuration recorder names.

    " + "documentation":"

    A list of names of the configuration recorders that you want to specify.

    " + }, + "ServicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    For service-linked configuration recorders, you can use the service principal of the linked Amazon Web Services service to specify the configuration recorder.

    " + }, + "Arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the configuration recorder that you want to specify.

    " } }, "documentation":"

    The input for the DescribeConfigurationRecorders action.

    " @@ -3935,7 +4220,7 @@ "members":{ "ConfigRuleName":{ "shape":"ConfigRuleName", - "documentation":"

    A list of Config rule names.

    " + "documentation":"

    The name of the Config rule.

    " }, "ResourceKeys":{ "shape":"ResourceKeys", @@ -3995,6 +4280,30 @@ "max":256, "min":1 }, + "DisassociateResourceTypesRequest":{ + "type":"structure", + "required":[ + "ConfigurationRecorderArn", + "ResourceTypes" + ], + "members":{ + "ConfigurationRecorderArn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the specified configuration recorder.

    " + }, + "ResourceTypes":{ + "shape":"ResourceTypeList", + "documentation":"

    The list of resource types you want to remove from the recording group of the specified configuration recorder.

    " + } + } + }, + "DisassociateResourceTypesResponse":{ + "type":"structure", + "required":["ConfigurationRecorder"], + "members":{ + "ConfigurationRecorder":{"shape":"ConfigurationRecorder"} + } + }, "DiscoveredResourceIdentifierList":{ "type":"list", "member":{"shape":"AggregateResourceIdentifier"} @@ -4192,7 +4501,7 @@ "documentation":"

    A comma-separated list of resource types to exclude from recording by the configuration recorder.

    " } }, - "documentation":"

    Specifies whether the configuration recorder excludes certain resource types from being recorded. Use the resourceTypes field to enter a comma-separated list of resource types you want to exclude from recording.

    By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    How to use the exclusion recording strategy

    To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

    Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.

    Global resource types and the exclusion recording strategy

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " + "documentation":"

    Specifies whether the configuration recorder excludes certain resource types from being recorded. Use the resourceTypes field to enter a comma-separated list of resource types you want to exclude from recording.

    By default, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    How to use the exclusion recording strategy

    To use this option, you must set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES.

    Config will then record configuration changes for all supported resource types, except the resource types that you specify to exclude from being recorded.

    Global resource types and the exclusion recording strategy

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. For a list of those Regions, see Recording Amazon Web Services Resources | Global Resources.

    " }, "ExecutionControls":{ "type":"structure", @@ -5000,14 +5309,14 @@ "type":"structure", "members":{ }, - "documentation":"

    Your Amazon S3 bucket policy does not permit Config to write to it.

    ", + "documentation":"

    Your Amazon S3 bucket policy does not allow Config to write to it.

    ", "exception":true }, "InsufficientPermissionsException":{ "type":"structure", "members":{ }, - "documentation":"

    Indicates one of the following errors:

    • For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions to perform the config:Put* action.

    • For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the function's permissions.

    • For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have permissions to call IAM GetRole action or create a service-linked role.

    • For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because you do not have the following permissions:

      • You do not have permission to call IAM GetRole action or create a service-linked role.

      • You do not have permission to read Amazon S3 bucket or call SSM:GetDocument.

    ", + "documentation":"

    Indicates one of the following errors:

    • For PutConfigRule, the rule cannot be created because the IAM role assigned to Config lacks permissions to perform the config:Put* action.

    • For PutConfigRule, the Lambda function cannot be invoked. Check the function ARN, and check the function's permissions.

    • For PutOrganizationConfigRule, organization Config rule cannot be created because you do not have permissions to call IAM GetRole action or create a service-linked role.

    • For PutConformancePack and PutOrganizationConformancePack, a conformance pack cannot be created because you do not have the following permissions:

      • You do not have permission to call IAM GetRole action or create a service-linked role.

      • You do not have permission to read Amazon S3 bucket or call SSM:GetDocument.

    • For PutServiceLinkedConfigurationRecorder, a service-linked configuration recorder cannot be created because you do not have the following permissions: IAM CreateServiceLinkedRole.

    ", "exception":true }, "Integer":{"type":"integer"}, @@ -5015,7 +5324,7 @@ "type":"structure", "members":{ }, - "documentation":"

    You have provided a name for the configuration recorder that is not valid.

    ", + "documentation":"

    You have provided a name for the customer managed configuration recorder that is not valid.

    ", "exception":true }, "InvalidDeliveryChannelNameException":{ @@ -5057,7 +5366,7 @@ "type":"structure", "members":{ }, - "documentation":"

    Indicates one of the following errors:

    • You have provided a combination of parameter values that is not valid. For example:

    • Every parameter is either null, false, or empty.

    • You have reached the limit of the number of resource types you can provide for the recording group.

    • You have provided resource types or a recording strategy that are not valid.

    ", + "documentation":"

    One of the following errors:

    • You have provided a combination of parameter values that is not valid. For example:

    • Every parameter is either null, false, or empty.

    • You have reached the limit of the number of resource types you can provide for the recording group.

    • You have provided resource types or a recording strategy that are not valid.

    ", "exception":true }, "InvalidResultTokenException":{ @@ -5071,7 +5380,7 @@ "type":"structure", "members":{ }, - "documentation":"

    You have provided a null or empty Amazon Resource Name (ARN) for the IAM role assumed by Config and used by the configuration recorder.

    ", + "documentation":"

    You have provided a null or empty Amazon Resource Name (ARN) for the IAM role assumed by Config and used by the customer managed configuration recorder.

    ", "exception":true }, "InvalidS3KeyPrefixException":{ @@ -5106,7 +5415,7 @@ "type":"structure", "members":{ }, - "documentation":"

    You cannot delete the delivery channel you specified because the configuration recorder is running.

    ", + "documentation":"

    You cannot delete the delivery channel you specified because the customer managed configuration recorder is running.

    ", "exception":true }, "LastUpdatedTime":{"type":"timestamp"}, @@ -5120,7 +5429,7 @@ "type":"structure", "members":{ }, - "documentation":"

    For StartConfigRulesEvaluation API, this exception is thrown if an evaluation is in progress or if you call the StartConfigRulesEvaluation API more than once per minute.

    For PutConfigurationAggregator API, this exception is thrown if the number of accounts and aggregators exceeds the limit.

    ", + "documentation":"

    For PutServiceLinkedConfigurationRecorder API, this exception is thrown if the number of service-linked roles in the account exceeds the limit.

    For StartConfigRulesEvaluation API, this exception is thrown if an evaluation is in progress or if you call the StartConfigRulesEvaluation API more than once per minute.

    For PutConfigurationAggregator API, this exception is thrown if the number of accounts and aggregators exceeds the limit.

    ", "exception":true }, "ListAggregateDiscoveredResourcesRequest":{ @@ -5165,6 +5474,38 @@ } } }, + "ListConfigurationRecordersRequest":{ + "type":"structure", + "members":{ + "Filters":{ + "shape":"ConfigurationRecorderFilterList", + "documentation":"

    Filters the results based on a list of ConfigurationRecorderFilter objects that you specify.

    " + }, + "MaxResults":{ + "shape":"MaxResults", + "documentation":"

    The maximum number of results to include in the response.

    ", + "box":true + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    The NextToken string returned on a previous page that you use to get the next page of results in a paginated response.

    " + } + } + }, + "ListConfigurationRecordersResponse":{ + "type":"structure", + "required":["ConfigurationRecorderSummaries"], + "members":{ + "ConfigurationRecorderSummaries":{ + "shape":"ConfigurationRecorderSummaries", + "documentation":"

    A list of ConfigurationRecorderSummary objects that includes.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    The NextToken string returned on a previous page that you use to get the next page of results in a paginated response.

    " + } + } + }, "ListConformancePackComplianceScoresRequest":{ "type":"structure", "members":{ @@ -5308,7 +5649,7 @@ }, "NextToken":{ "shape":"String", - "documentation":"

    If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this action again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.

    " + "documentation":"

    If the previous paginated request didn't return all of the remaining results, the response object's NextToken parameter value is set to a token. To retrieve the next set of results, call this operation again and assign that token to the request object's NextToken parameter. If there are no remaining results, the previous response object's NextToken parameter is set to null.

    " } } }, @@ -5318,7 +5659,7 @@ "members":{ "ResourceArn":{ "shape":"AmazonResourceName", - "documentation":"

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are ConfigRule, ConfigurationAggregator and AggregatorAuthorization.

    " + "documentation":"

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. The following resources are supported:

    • ConfigurationRecorder

    • ConfigRule

    • OrganizationConfigRule

    • ConformancePack

    • OrganizationConformancePack

    • ConfigurationAggregator

    • AggregationAuthorization

    • StoredQuery

    " }, "Limit":{ "shape":"Limit", @@ -5400,6 +5741,11 @@ "documentation":"

    Failed to add the retention configuration because a retention configuration with that name already exists.

    ", "exception":true }, + "MaxResults":{ + "type":"integer", + "max":20, + "min":0 + }, "MaximumExecutionFrequency":{ "type":"string", "enum":[ @@ -5474,7 +5820,7 @@ "type":"structure", "members":{ }, - "documentation":"

    There are no configuration recorders available to provide the role needed to describe your resources. Create a configuration recorder.

    ", + "documentation":"

    There are no customer managed configuration recorders available to record your resources. Use the PutConfigurationRecorder operation to create the customer managed configuration recorder.

    ", "exception":true }, "NoAvailableDeliveryChannelException":{ @@ -5587,7 +5933,7 @@ "type":"structure", "members":{ }, - "documentation":"

    For PutConfigurationAggregator API, you can see this exception for the following reasons:

    • No permission to call EnableAWSServiceAccess API

    • The configuration aggregator cannot be updated because your Amazon Web Services Organization management account or the delegated administrator role changed. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

    • The configuration aggregator is associated with a previous Amazon Web Services Organization and Config cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

    • You are not a registered delegated administrator for Config with permissions to call ListDelegatedAdministrators API. Ensure that the management account registers delagated administrator for Config service principle name before the delegated administrator creates an aggregator.

    For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization management account.

    ", + "documentation":"

    For PutConfigurationAggregator API, you can see this exception for the following reasons:

    • No permission to call EnableAWSServiceAccess API

    • The configuration aggregator cannot be updated because your Amazon Web Services Organization management account or the delegated administrator role changed. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

    • The configuration aggregator is associated with a previous Amazon Web Services Organization and Config cannot aggregate data with current Amazon Web Services Organization. Delete this aggregator and create a new one with the current Amazon Web Services Organization.

    • You are not a registered delegated administrator for Config with permissions to call ListDelegatedAdministrators API. Ensure that the management account registers delagated administrator for Config service principal name before the delegated administrator creates an aggregator.

    For all OrganizationConfigRule and OrganizationConformancePack APIs, Config throws an exception if APIs are called from member accounts. All APIs must be called from organization management account.

    ", "exception":true }, "OrganizationAggregationSource":{ @@ -6235,6 +6581,10 @@ "Tags":{ "shape":"TagsList", "documentation":"

    An array of tag object.

    " + }, + "AggregatorFilters":{ + "shape":"AggregatorFilters", + "documentation":"

    An object to filter configuration recorders in an aggregator. Either ResourceType or ServicePrincipal is required.

    " } } }, @@ -6253,7 +6603,11 @@ "members":{ "ConfigurationRecorder":{ "shape":"ConfigurationRecorder", - "documentation":"

    An object for the configuration recorder to record configuration changes for specified resource types.

    " + "documentation":"

    An object for the configuration recorder. A configuration recorder records configuration changes for the resource types in scope.

    " + }, + "Tags":{ + "shape":"TagsList", + "documentation":"

    The tags for the customer managed configuration recorder. Each tag consists of a key and an optional value, both of which you define.

    " } }, "documentation":"

    The input for the PutConfigurationRecorder action.

    " @@ -6307,7 +6661,7 @@ "members":{ "DeliveryChannel":{ "shape":"DeliveryChannel", - "documentation":"

    The configuration delivery channel object that delivers the configuration information to an Amazon S3 bucket and to an Amazon SNS topic.

    " + "documentation":"

    An object for the delivery channel. A delivery channel sends notifications and updated configuration states.

    " } }, "documentation":"

    The input for the PutDeliveryChannel action.

    " @@ -6548,6 +6902,33 @@ } } }, + "PutServiceLinkedConfigurationRecorderRequest":{ + "type":"structure", + "required":["ServicePrincipal"], + "members":{ + "ServicePrincipal":{ + "shape":"ServicePrincipal", + "documentation":"

    The service principal of the Amazon Web Services service for the service-linked configuration recorder that you want to create.

    " + }, + "Tags":{ + "shape":"TagsList", + "documentation":"

    The tags for a service-linked configuration recorder. Each tag consists of a key and an optional value, both of which you define.

    " + } + } + }, + "PutServiceLinkedConfigurationRecorderResponse":{ + "type":"structure", + "members":{ + "Arn":{ + "shape":"AmazonResourceName", + "documentation":"

    The Amazon Resource Name (ARN) of the specified configuration recorder.

    " + }, + "Name":{ + "shape":"RecorderName", + "documentation":"

    The name of the specified configuration recorder.

    For service-linked configuration recorders, Config automatically assigns a name that has the prefix \"AWS\" to the new service-linked configuration recorder.

    " + } + } + }, "PutStoredQueryRequest":{ "type":"structure", "required":["StoredQuery"], @@ -6621,7 +7002,8 @@ "enum":[ "Pending", "Success", - "Failure" + "Failure", + "NotApplicable" ] }, "RecordingFrequency":{ @@ -6640,7 +7022,7 @@ }, "includeGlobalResourceTypes":{ "shape":"IncludeGlobalResourceTypes", - "documentation":"

    This option is a bundle which only applies to the global IAM resource types: IAM users, groups, roles, and customer managed policies. These global IAM resource types can only be recorded by Config in Regions where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    Aurora global clusters are recorded in all enabled Regions

    The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes is setfalse. The includeGlobalResourceTypes option is a bundle which only applies to IAM users, groups, roles, and customer managed policies.

    If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use one of the following recording strategies:

    1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

    2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

    For more information, see Selecting Which Resources are Recorded in the Config developer guide.

    includeGlobalResourceTypes and the exclusion recording strategy

    The includeGlobalResourceTypes field has no impact on the EXCLUSION_BY_RESOURCE_TYPES recording strategy. This means that the global IAM resource types (IAM users, groups, roles, and customer managed policies) will not be automatically added as exclusions for exclusionByResourceTypes when includeGlobalResourceTypes is set to false.

    The includeGlobalResourceTypes field should only be used to modify the AllSupported field, as the default for the AllSupported field is to record configuration changes for all supported resource types excluding the global IAM resource types. To include the global IAM resource types when AllSupported is set to true, make sure to set includeGlobalResourceTypes to true.

    To exclude the global IAM resource types for the EXCLUSION_BY_RESOURCE_TYPES recording strategy, you need to manually add them to the resourceTypes field of exclusionByResourceTypes.

    Required and optional fields

    Before you set this field to true, set the allSupported field of RecordingGroup to true. Optionally, you can set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES.

    Overriding fields

    If you set this field to false but list global IAM resource types in the resourceTypes field of RecordingGroup, Config will still record configuration changes for those specified resource types regardless of if you set the includeGlobalResourceTypes field to false.

    If you do not want to record configuration changes to the global IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes field to false.

    " + "documentation":"

    This option is a bundle which only applies to the global IAM resource types: IAM users, groups, roles, and customer managed policies. These global IAM resource types can only be recorded by Config in Regions where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. For a list of those Regions, see Recording Amazon Web Services Resources | Global Resources.

    Aurora global clusters are recorded in all enabled Regions

    The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled, even if includeGlobalResourceTypes is setfalse. The includeGlobalResourceTypes option is a bundle which only applies to IAM users, groups, roles, and customer managed policies.

    If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use one of the following recording strategies:

    1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

    2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

    For more information, see Selecting Which Resources are Recorded in the Config developer guide.

    includeGlobalResourceTypes and the exclusion recording strategy

    The includeGlobalResourceTypes field has no impact on the EXCLUSION_BY_RESOURCE_TYPES recording strategy. This means that the global IAM resource types (IAM users, groups, roles, and customer managed policies) will not be automatically added as exclusions for exclusionByResourceTypes when includeGlobalResourceTypes is set to false.

    The includeGlobalResourceTypes field should only be used to modify the AllSupported field, as the default for the AllSupported field is to record configuration changes for all supported resource types excluding the global IAM resource types. To include the global IAM resource types when AllSupported is set to true, make sure to set includeGlobalResourceTypes to true.

    To exclude the global IAM resource types for the EXCLUSION_BY_RESOURCE_TYPES recording strategy, you need to manually add them to the resourceTypes field of exclusionByResourceTypes.

    Required and optional fields

    Before you set this field to true, set the allSupported field of RecordingGroup to true. Optionally, you can set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES.

    Overriding fields

    If you set this field to false but list global IAM resource types in the resourceTypes field of RecordingGroup, Config will still record configuration changes for those specified resource types regardless of if you set the includeGlobalResourceTypes field to false.

    If you do not want to record configuration changes to the global IAM resource types (IAM users, groups, roles, and customer managed policies), make sure to not list them in the resourceTypes field in addition to setting the includeGlobalResourceTypes field to false.

    " }, "resourceTypes":{ "shape":"ResourceTypeList", @@ -6652,7 +7034,7 @@ }, "recordingStrategy":{ "shape":"RecordingStrategy", - "documentation":"

    An object that specifies the recording strategy for the configuration recorder.

    • If you set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported field of RecordingGroup to true. When Config adds support for a new resource type, Config automatically starts recording resources of that type.

    • If you set the useOnly field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for only the resource types you specify in the resourceTypes field of RecordingGroup.

    • If you set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for all supported resource types except the resource types that you specify to exclude from being recorded in the resourceTypes field of ExclusionByResourceTypes.

    Required and optional fields

    The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

    The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

    The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

    Overriding fields

    If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

    For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

    Global resources types and the resource exclusion recording strategy

    By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. This list where you cannot record the global IAM resource types includes the following Regions:

    • Asia Pacific (Hyderabad)

    • Asia Pacific (Melbourne)

    • Canada West (Calgary)

    • Europe (Spain)

    • Europe (Zurich)

    • Israel (Tel Aviv)

    • Middle East (UAE)

    " + "documentation":"

    An object that specifies the recording strategy for the configuration recorder.

    • If you set the useOnly field of RecordingStrategy to ALL_SUPPORTED_RESOURCE_TYPES, Config records configuration changes for all supported resource types, excluding the global IAM resource types. You also must set the allSupported field of RecordingGroup to true. When Config adds support for a new resource type, Config automatically starts recording resources of that type.

    • If you set the useOnly field of RecordingStrategy to INCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for only the resource types you specify in the resourceTypes field of RecordingGroup.

    • If you set the useOnly field of RecordingStrategy to EXCLUSION_BY_RESOURCE_TYPES, Config records configuration changes for all supported resource types except the resource types that you specify to exclude from being recorded in the resourceTypes field of ExclusionByResourceTypes.

    Required and optional fields

    The recordingStrategy field is optional when you set the allSupported field of RecordingGroup to true.

    The recordingStrategy field is optional when you list resource types in the resourceTypes field of RecordingGroup.

    The recordingStrategy field is required if you list resource types to exclude from recording in the resourceTypes field of ExclusionByResourceTypes.

    Overriding fields

    If you choose EXCLUSION_BY_RESOURCE_TYPES for the recording strategy, the exclusionByResourceTypes field will override other properties in the request.

    For example, even if you set includeGlobalResourceTypes to false, global IAM resource types will still be automatically recorded in this option unless those resource types are specifically listed as exclusions in the resourceTypes field of exclusionByResourceTypes.

    Global resources types and the resource exclusion recording strategy

    By default, if you choose the EXCLUSION_BY_RESOURCE_TYPES recording strategy, when Config adds support for a new resource type in the Region where you set up the configuration recorder, including global resource types, Config starts recording resources of that type automatically.

    Unless specifically listed as exclusions, AWS::RDS::GlobalCluster will be recorded automatically in all supported Config Regions were the configuration recorder is enabled.

    IAM users, groups, roles, and customer managed policies will be recorded in the Region where you set up the configuration recorder if that is a Region where Config was available before February 2022. You cannot be record the global IAM resouce types in Regions supported by Config after February 2022. For a list of those Regions, see Recording Amazon Web Services Resources | Global Resources.

    " } }, "documentation":"

    Specifies which resource types Config records for configuration changes. By default, Config records configuration changes for all current and future supported resource types in the Amazon Web Services Region where you have enabled Config, excluding the global IAM resource types: IAM users, groups, roles, and customer managed policies.

    In the recording group, you specify whether you want to record all supported current and future supported resource types or to include or exclude specific resources types. For a list of supported resource types, see Supported Resource Types in the Config developer guide.

    If you don't want Config to record all current and future supported resource types (excluding the global IAM resource types), use one of the following recording strategies:

    1. Record all current and future resource types with exclusions (EXCLUSION_BY_RESOURCE_TYPES), or

    2. Record specific resource types (INCLUSION_BY_RESOURCE_TYPES).

    If you use the recording strategy to Record all current and future resource types (ALL_SUPPORTED_RESOURCE_TYPES), you can use the flag includeGlobalResourceTypes to include the global IAM resource types in your recording.

    Aurora global clusters are recorded in all enabled Regions

    The AWS::RDS::GlobalCluster resource type will be recorded in all supported Config Regions where the configuration recorder is enabled.

    If you do not want to record AWS::RDS::GlobalCluster in all enabled Regions, use the EXCLUSION_BY_RESOURCE_TYPES or INCLUSION_BY_RESOURCE_TYPES recording strategy.

    " @@ -6663,7 +7045,7 @@ "members":{ "recordingFrequency":{ "shape":"RecordingFrequency", - "documentation":"

    The default recording frequency that Config uses to record configuration changes.

    Daily recording is not supported for the following resource types:

    • AWS::Config::ResourceCompliance

    • AWS::Config::ConformancePackCompliance

    • AWS::Config::ConfigurationRecorder

    For the allSupported (ALL_SUPPORTED_RESOURCE_TYPES) recording strategy, these resource types will be set to Continuous recording.

    " + "documentation":"

    The default recording frequency that Config uses to record configuration changes.

    Daily recording cannot be specified for the following resource types:

    • AWS::Config::ResourceCompliance

    • AWS::Config::ConformancePackCompliance

    • AWS::Config::ConfigurationRecorder

    For the allSupported (ALL_SUPPORTED_RESOURCE_TYPES) recording strategy, these resource types will be set to Continuous recording.

    " }, "recordingModeOverrides":{ "shape":"RecordingModeOverrides", @@ -6685,7 +7067,7 @@ }, "resourceTypes":{ "shape":"RecordingModeResourceTypesList", - "documentation":"

    A comma-separated list that specifies which resource types Config includes in the override.

    Daily recording is not supported for the following resource types:

    • AWS::Config::ResourceCompliance

    • AWS::Config::ConformancePackCompliance

    • AWS::Config::ConfigurationRecorder

    " + "documentation":"

    A comma-separated list that specifies which resource types Config includes in the override.

    Daily recording cannot be specified for the following resource types:

    • AWS::Config::ResourceCompliance

    • AWS::Config::ConformancePackCompliance

    • AWS::Config::ConfigurationRecorder

    " }, "recordingFrequency":{ "shape":"RecordingFrequency", @@ -6704,6 +7086,13 @@ "type":"list", "member":{"shape":"ResourceType"} }, + "RecordingScope":{ + "type":"string", + "enum":[ + "INTERNAL", + "PAID" + ] + }, "RecordingStrategy":{ "type":"structure", "members":{ @@ -7661,6 +8050,16 @@ "max":196, "min":1 }, + "ResourceTypeValue":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}::[a-zA-Z0-9]{2,64}" + }, + "ResourceTypeValueList":{ + "type":"list", + "member":{"shape":"ResourceTypeValue"} + }, "ResourceTypes":{ "type":"list", "member":{"shape":"StringWithCharLimit256"}, @@ -7850,6 +8249,22 @@ } } }, + "ServicePrincipal":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w+=,.@-]+" + }, + "ServicePrincipalValue":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w+=,.@-]+" + }, + "ServicePrincipalValueList":{ + "type":"list", + "member":{"shape":"ServicePrincipalValue"} + }, "SortBy":{ "type":"string", "enum":["SCORE"] @@ -7949,10 +8364,10 @@ "members":{ "ConfigurationRecorderName":{ "shape":"RecorderName", - "documentation":"

    The name of the recorder object that records each configuration change made to the resources.

    " + "documentation":"

    The name of the customer managed configuration recorder that you want to start.

    " } }, - "documentation":"

    The input for the StartConfigurationRecorder action.

    " + "documentation":"

    The input for the StartConfigurationRecorder operation.

    " }, "StartRemediationExecutionRequest":{ "type":"structure", @@ -8059,10 +8474,10 @@ "members":{ "ConfigurationRecorderName":{ "shape":"RecorderName", - "documentation":"

    The name of the recorder object that records each configuration change made to the resources.

    " + "documentation":"

    The name of the customer managed configuration recorder that you want to stop.

    " } }, - "documentation":"

    The input for the StopConfigurationRecorder action.

    " + "documentation":"

    The input for the StopConfigurationRecorder operation.

    " }, "StoredQuery":{ "type":"structure", @@ -8209,7 +8624,7 @@ "members":{ "ResourceArn":{ "shape":"AmazonResourceName", - "documentation":"

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are ConfigRule, ConfigurationAggregator and AggregatorAuthorization.

    " + "documentation":"

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. The following resources are supported:

    • ConfigurationRecorder

    • ConfigRule

    • OrganizationConfigRule

    • ConformancePack

    • OrganizationConformancePack

    • ConfigurationAggregator

    • AggregationAuthorization

    • StoredQuery

    " }, "Tags":{ "shape":"TagList", @@ -8280,6 +8695,13 @@ "documentation":"

    You have reached the limit of the number of tags you can use. For more information, see Service Limits in the Config Developer Guide.

    ", "exception":true }, + "UnmodifiableEntityException":{ + "type":"structure", + "members":{ + }, + "documentation":"

    The requested operation is not valid.

    For PutConfigurationRecorder, you will see this exception because you cannot use this operation to create a service-linked configuration recorder. Use the PutServiceLinkedConfigurationRecorder operation to create a service-linked configuration recorder.

    For DeleteConfigurationRecorder, you will see this exception because you cannot use this operation to delete a service-linked configuration recorder. Use the DeleteServiceLinkedConfigurationRecorder operation to delete a service-linked configuration recorder.

    For StartConfigurationRecorder and StopConfigurationRecorder, you will see this exception because these operations do not affect service-linked configuration recorders. Service-linked configuration recorders are always recording. To stop recording, you must delete the service-linked configuration recorder. Use the DeleteServiceLinkedConfigurationRecorder operation to delete a service-linked configuration recorder.

    ", + "exception":true + }, "UnprocessedResourceIdentifierList":{ "type":"list", "member":{"shape":"AggregateResourceIdentifier"} @@ -8293,7 +8715,7 @@ "members":{ "ResourceArn":{ "shape":"AmazonResourceName", - "documentation":"

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. Currently, the supported resources are ConfigRule, ConfigurationAggregator and AggregatorAuthorization.

    " + "documentation":"

    The Amazon Resource Name (ARN) that identifies the resource for which to list the tags. The following resources are supported:

    • ConfigurationRecorder

    • ConfigRule

    • OrganizationConfigRule

    • ConformancePack

    • OrganizationConformancePack

    • ConfigurationAggregator

    • AggregationAuthorization

    • StoredQuery

    " }, "TagKeys":{ "shape":"TagKeyList", @@ -8305,7 +8727,7 @@ "type":"structure", "members":{ }, - "documentation":"

    The requested action is not valid.

    For PutStoredQuery, you will see this exception if there are missing required fields or if the input value fails the validation, or if you are trying to create more than 300 queries.

    For GetStoredQuery, ListStoredQuery, and DeleteStoredQuery you will see this exception if there are missing required fields or if the input value fails the validation.

    ", + "documentation":"

    The requested operation is not valid. You will see this exception if there are missing required fields or if the input value fails the validation.

    For PutStoredQuery, one of the following errors:

    • There are missing required fields.

    • The input value fails the validation.

    • You are trying to create more than 300 queries.

    For DescribeConfigurationRecorders and DescribeConfigurationRecorderStatus, one of the following errors:

    • You have specified more than one configuration recorder.

    • You have provided a service principal for service-linked configuration recorder that is not valid.

    For AssociateResourceTypes and DisassociateResourceTypes, one of the following errors:

    • Your configuraiton recorder has a recording strategy that does not allow the association or disassociation of resource types.

    • One or more of the specified resource types are already associated or disassociated with the configuration recorder.

    • For service-linked configuration recorders, the configuration recorder does not record one or more of the specified resource types.

    ", "exception":true }, "Value":{"type":"string"}, diff --git a/tools/code-generation/api-descriptions/fsx-2018-03-01.normal.json b/tools/code-generation/api-descriptions/fsx-2018-03-01.normal.json index 5197dc7076b..9236632067f 100644 --- a/tools/code-generation/api-descriptions/fsx-2018-03-01.normal.json +++ b/tools/code-generation/api-descriptions/fsx-2018-03-01.normal.json @@ -1748,6 +1748,10 @@ "shape":"DataCompressionType", "documentation":"

    Sets the data compression configuration for the file system. DataCompressionType can have the following values:

    • NONE - (Default) Data compression is turned off when the file system is created.

    • LZ4 - Data compression is turned on with the LZ4 algorithm.

    For more information, see Lustre data compression in the Amazon FSx for Lustre User Guide.

    " }, + "EfaEnabled":{ + "shape":"Flag", + "documentation":"

    (Optional) Specifies whether Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) support is enabled for the Amazon FSx for Lustre file system.

    (Default = false)

    " + }, "LogConfiguration":{ "shape":"LustreLogCreateConfiguration", "documentation":"

    The Lustre logging configuration used when creating an Amazon FSx for Lustre file system. When logging is enabled, Lustre logs error and warning events for data repositories associated with your file system to Amazon CloudWatch Logs.

    " @@ -4174,6 +4178,10 @@ "MetadataConfiguration":{ "shape":"FileSystemLustreMetadataConfiguration", "documentation":"

    The Lustre metadata performance configuration for an Amazon FSx for Lustre file system using a PERSISTENT_2 deployment type.

    " + }, + "EfaEnabled":{ + "shape":"Flag", + "documentation":"

    Specifies whether Elastic Fabric Adapter (EFA) and GPUDirect Storage (GDS) support is enabled for the Amazon FSx for Lustre file system.

    " } }, "documentation":"

    The configuration for the Amazon FSx for Lustre file system.

    " diff --git a/tools/code-generation/api-descriptions/observabilityadmin-2018-05-10.normal.json b/tools/code-generation/api-descriptions/observabilityadmin-2018-05-10.normal.json new file mode 100644 index 00000000000..0da0b22ce3c --- /dev/null +++ b/tools/code-generation/api-descriptions/observabilityadmin-2018-05-10.normal.json @@ -0,0 +1,439 @@ +{ + "version":"2.0", + "metadata":{ + "apiVersion":"2018-05-10", + "auth":["aws.auth#sigv4"], + "endpointPrefix":"observabilityadmin", + "protocol":"rest-json", + "protocols":["rest-json"], + "serviceFullName":"CloudWatch Observability Admin Service", + "serviceId":"ObservabilityAdmin", + "signatureVersion":"v4", + "signingName":"observabilityadmin", + "uid":"observabilityadmin-2018-05-10" + }, + "operations":{ + "GetTelemetryEvaluationStatus":{ + "name":"GetTelemetryEvaluationStatus", + "http":{ + "method":"POST", + "requestUri":"/GetTelemetryEvaluationStatus", + "responseCode":200 + }, + "output":{"shape":"GetTelemetryEvaluationStatusOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"} + ], + "documentation":"

    Returns the current onboarding status of the telemetry config feature, including the status of the feature and reason the feature failed to start or stop.

    " + }, + "GetTelemetryEvaluationStatusForOrganization":{ + "name":"GetTelemetryEvaluationStatusForOrganization", + "http":{ + "method":"POST", + "requestUri":"/GetTelemetryEvaluationStatusForOrganization", + "responseCode":200 + }, + "output":{"shape":"GetTelemetryEvaluationStatusForOrganizationOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    This returns the onboarding status of the telemetry configuration feature for the organization. It can only be called by a Management Account of an AWS Organization or an assigned Delegated Admin Account of AWS CloudWatch telemetry config.

    " + }, + "ListResourceTelemetry":{ + "name":"ListResourceTelemetry", + "http":{ + "method":"POST", + "requestUri":"/ListResourceTelemetry", + "responseCode":200 + }, + "input":{"shape":"ListResourceTelemetryInput"}, + "output":{"shape":"ListResourceTelemetryOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Returns a list of telemetry configurations for AWS resources supported by telemetry config. For more information, see Auditing CloudWatch telemetry configurations.

    " + }, + "ListResourceTelemetryForOrganization":{ + "name":"ListResourceTelemetryForOrganization", + "http":{ + "method":"POST", + "requestUri":"/ListResourceTelemetryForOrganization", + "responseCode":200 + }, + "input":{"shape":"ListResourceTelemetryForOrganizationInput"}, + "output":{"shape":"ListResourceTelemetryForOrganizationOutput"}, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    Returns a list of telemetry configurations for AWS resources supported by telemetry config in the organization.

    " + }, + "StartTelemetryEvaluation":{ + "name":"StartTelemetryEvaluation", + "http":{ + "method":"POST", + "requestUri":"/StartTelemetryEvaluation", + "responseCode":200 + }, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    This action begins onboarding onboarding the caller AWS account to the telemetry config feature.

    " + }, + "StartTelemetryEvaluationForOrganization":{ + "name":"StartTelemetryEvaluationForOrganization", + "http":{ + "method":"POST", + "requestUri":"/StartTelemetryEvaluationForOrganization", + "responseCode":200 + }, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    This actions begins onboarding the organization and all member accounts to the telemetry config feature.

    " + }, + "StopTelemetryEvaluation":{ + "name":"StopTelemetryEvaluation", + "http":{ + "method":"POST", + "requestUri":"/StopTelemetryEvaluation", + "responseCode":200 + }, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    This action begins offboarding the caller AWS account from the telemetry config feature.

    " + }, + "StopTelemetryEvaluationForOrganization":{ + "name":"StopTelemetryEvaluationForOrganization", + "http":{ + "method":"POST", + "requestUri":"/StopTelemetryEvaluationForOrganization", + "responseCode":200 + }, + "errors":[ + {"shape":"AccessDeniedException"}, + {"shape":"InternalServerException"}, + {"shape":"ValidationException"} + ], + "documentation":"

    This action offboards the Organization of the caller AWS account from thef telemetry config feature.

    " + } + }, + "shapes":{ + "AccessDeniedException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

    The name of the exception.

    ", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

    Indicates you don't have permissions to perform the requested operation. The user or role that is making the request must have at least one IAM permissions policy attached that grants the required permissions. For more information, see Access management for AWS resources in the IAM user guide.

    ", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + }, + "AccountIdentifier":{ + "type":"string", + "max":12, + "min":12, + "pattern":"[0-9]{12}" + }, + "AccountIdentifiers":{ + "type":"list", + "member":{"shape":"AccountIdentifier"}, + "max":10, + "min":0 + }, + "FailureReason":{"type":"string"}, + "GetTelemetryEvaluationStatusForOrganizationOutput":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"Status", + "documentation":"

    The onboarding status of the telemetry config feature for the organization.

    " + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

    This field describes the reason for the failure status. The field will only be populated if Status is FAILED_START or FAILED_STOP.

    " + } + } + }, + "GetTelemetryEvaluationStatusOutput":{ + "type":"structure", + "members":{ + "Status":{ + "shape":"Status", + "documentation":"

    The onboarding status of the telemetry config feature.

    " + }, + "FailureReason":{ + "shape":"FailureReason", + "documentation":"

    Describes the reason for the failure status. The field will only be populated if Status is FAILED_START or FAILED_STOP.

    " + } + } + }, + "InternalServerException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"}, + "amznErrorType":{ + "shape":"String", + "documentation":"

    The name of the exception.

    ", + "location":"header", + "locationName":"x-amzn-ErrorType" + } + }, + "documentation":"

    Indicates the request has failed to process because of an unknown server error, exception, or failure.

    ", + "error":{"httpStatusCode":500}, + "exception":true, + "fault":true + }, + "ListResourceTelemetryForOrganizationInput":{ + "type":"structure", + "members":{ + "AccountIdentifiers":{ + "shape":"AccountIdentifiers", + "documentation":"

    A list of AWS account IDs used to filter the resources to those associated with the specified accounts.

    " + }, + "ResourceIdentifierPrefix":{ + "shape":"ResourceIdentifierPrefix", + "documentation":"

    A string used to filter resources in the organization which have a ResourceIdentifier starting with the ResourceIdentifierPrefix.

    " + }, + "ResourceTypes":{ + "shape":"ResourceTypes", + "documentation":"

    A list of resource types used to filter resources in the organization. If this parameter is provided, the resources will be returned in the same order used in the request.

    " + }, + "TelemetryConfigurationState":{ + "shape":"TelemetryConfigurationState", + "documentation":"

    A key-value pair to filter resources in the organization based on the telemetry type and the state of the telemetry configuration. The key is the telemetry type and the value is the state.

    " + }, + "ResourceTags":{ + "shape":"TagMapInput", + "documentation":"

    A key-value pair to filter resources in the organization based on tags associated with the resource. Fore more information about tags, see What are tags?

    " + }, + "MaxResults":{ + "shape":"ListResourceTelemetryForOrganizationMaxResults", + "documentation":"

    A number field used to limit the number of results within the returned list.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next set of items to return. A previous call provides this token.

    " + } + } + }, + "ListResourceTelemetryForOrganizationMaxResults":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListResourceTelemetryForOrganizationOutput":{ + "type":"structure", + "members":{ + "TelemetryConfigurations":{ + "shape":"TelemetryConfigurations", + "documentation":"

    A list of telemetry configurations for AWS resources supported by telemetry config in the organization.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next set of items to return. A previous call provides this token.

    " + } + } + }, + "ListResourceTelemetryInput":{ + "type":"structure", + "members":{ + "ResourceIdentifierPrefix":{ + "shape":"ResourceIdentifierPrefix", + "documentation":"

    A string used to filter resources which have a ResourceIdentifier starting with the ResourceIdentifierPrefix.

    " + }, + "ResourceTypes":{ + "shape":"ResourceTypes", + "documentation":"

    A list of resource types used to filter resources supported by telemetry config. If this parameter is provided, the resources will be returned in the same order used in the request.

    " + }, + "TelemetryConfigurationState":{ + "shape":"TelemetryConfigurationState", + "documentation":"

    A key-value pair to filter resources based on the telemetry type and the state of the telemetry configuration. The key is the telemetry type and the value is the state.

    " + }, + "ResourceTags":{ + "shape":"TagMapInput", + "documentation":"

    A key-value pair to filter resources based on tags associated with the resource. For more information about tags, see What are tags?

    " + }, + "MaxResults":{ + "shape":"ListResourceTelemetryMaxResults", + "documentation":"

    A number field used to limit the number of results within the returned list.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next set of items to return. A previous call generates this token.

    " + } + } + }, + "ListResourceTelemetryMaxResults":{ + "type":"integer", + "box":true, + "max":50, + "min":1 + }, + "ListResourceTelemetryOutput":{ + "type":"structure", + "members":{ + "TelemetryConfigurations":{ + "shape":"TelemetryConfigurations", + "documentation":"

    A list of telemetry configurations for AWS resources supported by telemetry config in the caller's account.

    " + }, + "NextToken":{ + "shape":"NextToken", + "documentation":"

    The token for the next set of items to return. A previous call generates this token.

    " + } + } + }, + "Long":{ + "type":"long", + "box":true + }, + "NextToken":{"type":"string"}, + "ResourceIdentifier":{"type":"string"}, + "ResourceIdentifierPrefix":{ + "type":"string", + "max":768, + "min":3 + }, + "ResourceType":{ + "type":"string", + "enum":[ + "AWS::EC2::Instance", + "AWS::EC2::VPC", + "AWS::Lambda::Function" + ] + }, + "ResourceTypes":{ + "type":"list", + "member":{"shape":"ResourceType"}, + "max":5, + "min":1 + }, + "Status":{ + "type":"string", + "enum":[ + "NOT_STARTED", + "STARTING", + "FAILED_START", + "RUNNING", + "STOPPING", + "FAILED_STOP", + "STOPPED" + ] + }, + "String":{"type":"string"}, + "TagKey":{ + "type":"string", + "max":128, + "min":1, + "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)" + }, + "TagMapInput":{ + "type":"map", + "key":{"shape":"TagKey"}, + "value":{"shape":"TagValue"}, + "max":50, + "min":0 + }, + "TagMapOutput":{ + "type":"map", + "key":{"shape":"String"}, + "value":{"shape":"String"} + }, + "TagValue":{ + "type":"string", + "max":256, + "min":0, + "pattern":"([\\p{L}\\p{Z}\\p{N}_.:/=+\\-@]*)" + }, + "TelemetryConfiguration":{ + "type":"structure", + "members":{ + "AccountIdentifier":{ + "shape":"AccountIdentifier", + "documentation":"

    The account ID which contains the resource managed in telemetry configuration. An example of a valid account ID is 012345678901.

    " + }, + "TelemetryConfigurationState":{ + "shape":"TelemetryConfigurationState", + "documentation":"

    The configuration state for the resource, for example { Logs: NotApplicable; Metrics: Enabled; Traces: NotApplicable; }.

    " + }, + "ResourceType":{ + "shape":"ResourceType", + "documentation":"

    The type of resource, for example AWS::EC2::Instance.

    " + }, + "ResourceIdentifier":{ + "shape":"ResourceIdentifier", + "documentation":"

    The identifier of the resource, for example i-0b22a22eec53b9321.

    " + }, + "ResourceTags":{ + "shape":"TagMapOutput", + "documentation":"

    Tags associated with the resource, for example { Name: \"ExampleInstance\", Environment: \"Development\" }.

    " + }, + "LastUpdateTimeStamp":{ + "shape":"Long", + "documentation":"

    The timestamp of the last change to the telemetry configuration for the resource. For example, 1728679196318.

    " + } + }, + "documentation":"

    A model representing the state of a resource within an account according to telemetry config.

    " + }, + "TelemetryConfigurationState":{ + "type":"map", + "key":{"shape":"TelemetryType"}, + "value":{"shape":"TelemetryState"} + }, + "TelemetryConfigurations":{ + "type":"list", + "member":{"shape":"TelemetryConfiguration"} + }, + "TelemetryState":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled", + "NotApplicable" + ] + }, + "TelemetryType":{ + "type":"string", + "enum":[ + "Logs", + "Metrics", + "Traces" + ] + }, + "ValidationException":{ + "type":"structure", + "members":{ + "Message":{"shape":"String"} + }, + "documentation":"

    Indicates input validation failed. Check your request parameters and retry the request.

    ", + "error":{ + "httpStatusCode":400, + "senderFault":true + }, + "exception":true + } + }, + "documentation":"

    Amazon CloudWatch Obsersavability Admin to control temletry config for your AWS Organization or account. Telemetry config config to discover and understand the state of telemetry configuration for your AWS resources from a central view in the CloudWatch console. Telemetry config simplifies the process of auditing your telemetry collection configurations across multiple resource types across your AWS Organization or account. For more information, see Auditing CloudWatch telemetry configurations in the CloudWatch User Guide.

    For information on the permissions you need to use this API, see Identity and access management for Amazon CloudWatch in the CloudWatch User Guide.

    " +} diff --git a/tools/code-generation/endpoints/observabilityadmin-2018-05-10.endpoint-rule-set.json b/tools/code-generation/endpoints/observabilityadmin-2018-05-10.endpoint-rule-set.json new file mode 100644 index 00000000000..47cdbe7055f --- /dev/null +++ b/tools/code-generation/endpoints/observabilityadmin-2018-05-10.endpoint-rule-set.json @@ -0,0 +1,350 @@ +{ + "version": "1.0", + "parameters": { + "Region": { + "builtIn": "AWS::Region", + "required": false, + "documentation": "The AWS region used to dispatch the request.", + "type": "String" + }, + "UseDualStack": { + "builtIn": "AWS::UseDualStack", + "required": true, + "default": false, + "documentation": "When true, use the dual-stack endpoint. If the configured endpoint does not support dual-stack, dispatching the request MAY return an error.", + "type": "Boolean" + }, + "UseFIPS": { + "builtIn": "AWS::UseFIPS", + "required": true, + "default": false, + "documentation": "When true, send this request to the FIPS-compliant regional endpoint. If the configured endpoint does not have a FIPS compliant endpoint, dispatching the request will return an error.", + "type": "Boolean" + }, + "Endpoint": { + "builtIn": "SDK::Endpoint", + "required": false, + "documentation": "Override the endpoint used to send this request", + "type": "String" + } + }, + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Endpoint" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "error": "Invalid Configuration: FIPS and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported", + "type": "error" + }, + { + "conditions": [], + "endpoint": { + "url": { + "ref": "Endpoint" + }, + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [ + { + "fn": "isSet", + "argv": [ + { + "ref": "Region" + } + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "aws.partition", + "argv": [ + { + "ref": "Region" + } + ], + "assign": "PartitionResult" + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + }, + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + } + ] + }, + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://observabilityadmin-fips.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS and DualStack are enabled, but this partition does not support one or both", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseFIPS" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsFIPS" + ] + }, + true + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://observabilityadmin-fips.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "FIPS is enabled but this partition does not support FIPS", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + { + "ref": "UseDualStack" + }, + true + ] + } + ], + "rules": [ + { + "conditions": [ + { + "fn": "booleanEquals", + "argv": [ + true, + { + "fn": "getAttr", + "argv": [ + { + "ref": "PartitionResult" + }, + "supportsDualStack" + ] + } + ] + } + ], + "rules": [ + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://observabilityadmin.{Region}.{PartitionResult#dualStackDnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "DualStack is enabled but this partition does not support DualStack", + "type": "error" + } + ], + "type": "tree" + }, + { + "conditions": [], + "rules": [ + { + "conditions": [], + "endpoint": { + "url": "https://observabilityadmin.{Region}.{PartitionResult#dnsSuffix}", + "properties": {}, + "headers": {} + }, + "type": "endpoint" + } + ], + "type": "tree" + } + ], + "type": "tree" + } + ], + "type": "tree" + }, + { + "conditions": [], + "error": "Invalid Configuration: Missing Region", + "type": "error" + } + ], + "type": "tree" + } + ] +} \ No newline at end of file diff --git a/tools/code-generation/endpoints/observabilityadmin-2018-05-10.endpoint-tests.json b/tools/code-generation/endpoints/observabilityadmin-2018-05-10.endpoint-tests.json new file mode 100644 index 00000000000..dd1afeb33d8 --- /dev/null +++ b/tools/code-generation/endpoints/observabilityadmin-2018-05-10.endpoint-tests.json @@ -0,0 +1,314 @@ +{ + "testCases": [ + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.us-east-1.api.aws" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.us-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.cn-north-1.api.amazonwebservices.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region cn-north-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.cn-north-1.amazonaws.com.cn" + } + }, + "params": { + "Region": "cn-north-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.us-gov-east-1.api.aws" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-gov-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.us-gov-east-1.amazonaws.com" + } + }, + "params": { + "Region": "us-gov-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-iso-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.us-iso-east-1.c2s.ic.gov" + } + }, + "params": { + "Region": "us-iso-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack enabled", + "expect": { + "error": "FIPS and DualStack are enabled, but this partition does not support one or both" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS enabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin-fips.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": true, + "UseDualStack": false + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack enabled", + "expect": { + "error": "DualStack is enabled but this partition does not support DualStack" + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": true + } + }, + { + "documentation": "For region us-isob-east-1 with FIPS disabled and DualStack disabled", + "expect": { + "endpoint": { + "url": "https://observabilityadmin.us-isob-east-1.sc2s.sgov.gov" + } + }, + "params": { + "Region": "us-isob-east-1", + "UseFIPS": false, + "UseDualStack": false + } + }, + { + "documentation": "For custom endpoint with region set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with region not set and fips disabled and dualstack disabled", + "expect": { + "endpoint": { + "url": "https://example.com" + } + }, + "params": { + "UseFIPS": false, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips enabled and dualstack disabled", + "expect": { + "error": "Invalid Configuration: FIPS and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": true, + "UseDualStack": false, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "For custom endpoint with fips disabled and dualstack enabled", + "expect": { + "error": "Invalid Configuration: Dualstack and custom endpoint are not supported" + }, + "params": { + "Region": "us-east-1", + "UseFIPS": false, + "UseDualStack": true, + "Endpoint": "https://example.com" + } + }, + { + "documentation": "Missing region", + "expect": { + "error": "Invalid Configuration: Missing Region" + } + } + ], + "version": "1.0" +} \ No newline at end of file