use std::error::Error;
use std::fmt;
#[allow(warnings)]
use futures::future;
use futures::Future;
use rusoto_core::credential::ProvideAwsCredentials;
use rusoto_core::region;
use rusoto_core::request::{BufferedHttpResponse, DispatchSignedRequest};
use rusoto_core::{Client, RusotoError, RusotoFuture};
use rusoto_core::proto;
use rusoto_core::signature::SignedRequest;
use serde_json;
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct AccountAggregationSource {
#[serde(rename = "AccountIds")]
pub account_ids: Vec<String>,
#[serde(rename = "AllAwsRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub all_aws_regions: Option<bool>,
#[serde(rename = "AwsRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_regions: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct AggregateComplianceByConfigRule {
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "AwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
#[serde(rename = "Compliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance: Option<Compliance>,
#[serde(rename = "ConfigRuleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct AggregateComplianceCount {
#[serde(rename = "ComplianceSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_summary: Option<ComplianceSummary>,
#[serde(rename = "GroupName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub group_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct AggregateEvaluationResult {
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "Annotation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation: Option<String>,
#[serde(rename = "AwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
#[serde(rename = "ConfigRuleInvokedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_invoked_time: Option<f64>,
#[serde(rename = "EvaluationResultIdentifier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluation_result_identifier: Option<EvaluationResultIdentifier>,
#[serde(rename = "ResultRecordedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub result_recorded_time: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct AggregateResourceIdentifier {
#[serde(rename = "ResourceId")]
pub resource_id: String,
#[serde(rename = "ResourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "ResourceType")]
pub resource_type: String,
#[serde(rename = "SourceAccountId")]
pub source_account_id: String,
#[serde(rename = "SourceRegion")]
pub source_region: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct AggregatedSourceStatus {
#[serde(rename = "AwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
#[serde(rename = "LastErrorCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_code: Option<String>,
#[serde(rename = "LastErrorMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_message: Option<String>,
#[serde(rename = "LastUpdateStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_update_status: Option<String>,
#[serde(rename = "LastUpdateTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_update_time: Option<f64>,
#[serde(rename = "SourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source_id: Option<String>,
#[serde(rename = "SourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct AggregationAuthorization {
#[serde(rename = "AggregationAuthorizationArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregation_authorization_arn: Option<String>,
#[serde(rename = "AuthorizedAccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub authorized_account_id: Option<String>,
#[serde(rename = "AuthorizedAwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub authorized_aws_region: Option<String>,
#[serde(rename = "CreationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_time: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct BaseConfigurationItem {
#[serde(rename = "accountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(rename = "availabilityZone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub availability_zone: Option<String>,
#[serde(rename = "awsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
#[serde(rename = "configuration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration: Option<String>,
#[serde(rename = "configurationItemCaptureTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_item_capture_time: Option<f64>,
#[serde(rename = "configurationItemStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_item_status: Option<String>,
#[serde(rename = "configurationStateId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_state_id: Option<String>,
#[serde(rename = "resourceCreationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_creation_time: Option<f64>,
#[serde(rename = "resourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "resourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "resourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(rename = "supplementaryConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub supplementary_configuration: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct BatchGetAggregateResourceConfigRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "ResourceIdentifiers")]
pub resource_identifiers: Vec<AggregateResourceIdentifier>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct BatchGetAggregateResourceConfigResponse {
#[serde(rename = "BaseConfigurationItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub base_configuration_items: Option<Vec<BaseConfigurationItem>>,
#[serde(rename = "UnprocessedResourceIdentifiers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub unprocessed_resource_identifiers: Option<Vec<AggregateResourceIdentifier>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct BatchGetResourceConfigRequest {
#[serde(rename = "resourceKeys")]
pub resource_keys: Vec<ResourceKey>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct BatchGetResourceConfigResponse {
#[serde(rename = "baseConfigurationItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub base_configuration_items: Option<Vec<BaseConfigurationItem>>,
#[serde(rename = "unprocessedResourceKeys")]
#[serde(skip_serializing_if = "Option::is_none")]
pub unprocessed_resource_keys: Option<Vec<ResourceKey>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct Compliance {
#[serde(rename = "ComplianceContributorCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_contributor_count: Option<ComplianceContributorCount>,
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ComplianceByConfigRule {
#[serde(rename = "Compliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance: Option<Compliance>,
#[serde(rename = "ConfigRuleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ComplianceByResource {
#[serde(rename = "Compliance")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance: Option<Compliance>,
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ComplianceContributorCount {
#[serde(rename = "CapExceeded")]
#[serde(skip_serializing_if = "Option::is_none")]
pub cap_exceeded: Option<bool>,
#[serde(rename = "CappedCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub capped_count: Option<i64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ComplianceSummary {
#[serde(rename = "ComplianceSummaryTimestamp")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_summary_timestamp: Option<f64>,
#[serde(rename = "CompliantResourceCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliant_resource_count: Option<ComplianceContributorCount>,
#[serde(rename = "NonCompliantResourceCount")]
#[serde(skip_serializing_if = "Option::is_none")]
pub non_compliant_resource_count: Option<ComplianceContributorCount>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ComplianceSummaryByResourceType {
#[serde(rename = "ComplianceSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_summary: Option<ComplianceSummary>,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ConfigExportDeliveryInfo {
#[serde(rename = "lastAttemptTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_attempt_time: Option<f64>,
#[serde(rename = "lastErrorCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_code: Option<String>,
#[serde(rename = "lastErrorMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_message: Option<String>,
#[serde(rename = "lastStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status: Option<String>,
#[serde(rename = "lastSuccessfulTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_successful_time: Option<f64>,
#[serde(rename = "nextDeliveryTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_delivery_time: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ConfigRule {
#[serde(rename = "ConfigRuleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_arn: Option<String>,
#[serde(rename = "ConfigRuleId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_id: Option<String>,
#[serde(rename = "ConfigRuleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_name: Option<String>,
#[serde(rename = "ConfigRuleState")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_state: Option<String>,
#[serde(rename = "CreatedBy")]
#[serde(skip_serializing_if = "Option::is_none")]
pub created_by: Option<String>,
#[serde(rename = "Description")]
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "InputParameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub input_parameters: Option<String>,
#[serde(rename = "MaximumExecutionFrequency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum_execution_frequency: Option<String>,
#[serde(rename = "Scope")]
#[serde(skip_serializing_if = "Option::is_none")]
pub scope: Option<Scope>,
#[serde(rename = "Source")]
pub source: Source,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ConfigRuleComplianceFilters {
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "AwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
#[serde(rename = "ConfigRuleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ConfigRuleComplianceSummaryFilters {
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "AwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ConfigRuleEvaluationStatus {
#[serde(rename = "ConfigRuleArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_arn: Option<String>,
#[serde(rename = "ConfigRuleId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_id: Option<String>,
#[serde(rename = "ConfigRuleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_name: Option<String>,
#[serde(rename = "FirstActivatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub first_activated_time: Option<f64>,
#[serde(rename = "FirstEvaluationStarted")]
#[serde(skip_serializing_if = "Option::is_none")]
pub first_evaluation_started: Option<bool>,
#[serde(rename = "LastErrorCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_code: Option<String>,
#[serde(rename = "LastErrorMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_message: Option<String>,
#[serde(rename = "LastFailedEvaluationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_failed_evaluation_time: Option<f64>,
#[serde(rename = "LastFailedInvocationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_failed_invocation_time: Option<f64>,
#[serde(rename = "LastSuccessfulEvaluationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_successful_evaluation_time: Option<f64>,
#[serde(rename = "LastSuccessfulInvocationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_successful_invocation_time: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ConfigSnapshotDeliveryProperties {
#[serde(rename = "deliveryFrequency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub delivery_frequency: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ConfigStreamDeliveryInfo {
#[serde(rename = "lastErrorCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_code: Option<String>,
#[serde(rename = "lastErrorMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_message: Option<String>,
#[serde(rename = "lastStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status: Option<String>,
#[serde(rename = "lastStatusChangeTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status_change_time: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ConfigurationAggregator {
#[serde(rename = "AccountAggregationSources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_aggregation_sources: Option<Vec<AccountAggregationSource>>,
#[serde(rename = "ConfigurationAggregatorArn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_aggregator_arn: Option<String>,
#[serde(rename = "ConfigurationAggregatorName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_aggregator_name: Option<String>,
#[serde(rename = "CreationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_time: Option<f64>,
#[serde(rename = "LastUpdatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_updated_time: Option<f64>,
#[serde(rename = "OrganizationAggregationSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub organization_aggregation_source: Option<OrganizationAggregationSource>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ConfigurationItem {
#[serde(rename = "accountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "arn")]
#[serde(skip_serializing_if = "Option::is_none")]
pub arn: Option<String>,
#[serde(rename = "availabilityZone")]
#[serde(skip_serializing_if = "Option::is_none")]
pub availability_zone: Option<String>,
#[serde(rename = "awsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_region: Option<String>,
#[serde(rename = "configuration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration: Option<String>,
#[serde(rename = "configurationItemCaptureTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_item_capture_time: Option<f64>,
#[serde(rename = "configurationItemMD5Hash")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_item_md5_hash: Option<String>,
#[serde(rename = "configurationItemStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_item_status: Option<String>,
#[serde(rename = "configurationStateId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_state_id: Option<String>,
#[serde(rename = "relatedEvents")]
#[serde(skip_serializing_if = "Option::is_none")]
pub related_events: Option<Vec<String>>,
#[serde(rename = "relationships")]
#[serde(skip_serializing_if = "Option::is_none")]
pub relationships: Option<Vec<Relationship>>,
#[serde(rename = "resourceCreationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_creation_time: Option<f64>,
#[serde(rename = "resourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "resourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "resourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(rename = "supplementaryConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub supplementary_configuration: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<::std::collections::HashMap<String, String>>,
#[serde(rename = "version")]
#[serde(skip_serializing_if = "Option::is_none")]
pub version: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ConfigurationRecorder {
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "recordingGroup")]
#[serde(skip_serializing_if = "Option::is_none")]
pub recording_group: Option<RecordingGroup>,
#[serde(rename = "roleARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub role_arn: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ConfigurationRecorderStatus {
#[serde(rename = "lastErrorCode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_code: Option<String>,
#[serde(rename = "lastErrorMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_error_message: Option<String>,
#[serde(rename = "lastStartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_start_time: Option<f64>,
#[serde(rename = "lastStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status: Option<String>,
#[serde(rename = "lastStatusChangeTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_status_change_time: Option<f64>,
#[serde(rename = "lastStopTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_stop_time: Option<f64>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "recording")]
#[serde(skip_serializing_if = "Option::is_none")]
pub recording: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteAggregationAuthorizationRequest {
#[serde(rename = "AuthorizedAccountId")]
pub authorized_account_id: String,
#[serde(rename = "AuthorizedAwsRegion")]
pub authorized_aws_region: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteConfigRuleRequest {
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteConfigurationAggregatorRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteConfigurationRecorderRequest {
#[serde(rename = "ConfigurationRecorderName")]
pub configuration_recorder_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteDeliveryChannelRequest {
#[serde(rename = "DeliveryChannelName")]
pub delivery_channel_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteEvaluationResultsRequest {
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DeleteEvaluationResultsResponse {}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeletePendingAggregationRequestRequest {
#[serde(rename = "RequesterAccountId")]
pub requester_account_id: String,
#[serde(rename = "RequesterAwsRegion")]
pub requester_aws_region: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteRemediationConfigurationRequest {
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DeleteRemediationConfigurationResponse {}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeleteRetentionConfigurationRequest {
#[serde(rename = "RetentionConfigurationName")]
pub retention_configuration_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DeliverConfigSnapshotRequest {
#[serde(rename = "deliveryChannelName")]
pub delivery_channel_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DeliverConfigSnapshotResponse {
#[serde(rename = "configSnapshotId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_snapshot_id: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct DeliveryChannel {
#[serde(rename = "configSnapshotDeliveryProperties")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_snapshot_delivery_properties: Option<ConfigSnapshotDeliveryProperties>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "s3BucketName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s_3_bucket_name: Option<String>,
#[serde(rename = "s3KeyPrefix")]
#[serde(skip_serializing_if = "Option::is_none")]
pub s_3_key_prefix: Option<String>,
#[serde(rename = "snsTopicARN")]
#[serde(skip_serializing_if = "Option::is_none")]
pub sns_topic_arn: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DeliveryChannelStatus {
#[serde(rename = "configHistoryDeliveryInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_history_delivery_info: Option<ConfigExportDeliveryInfo>,
#[serde(rename = "configSnapshotDeliveryInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_snapshot_delivery_info: Option<ConfigExportDeliveryInfo>,
#[serde(rename = "configStreamDeliveryInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_stream_delivery_info: Option<ConfigStreamDeliveryInfo>,
#[serde(rename = "name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeAggregateComplianceByConfigRulesRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<ConfigRuleComplianceFilters>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeAggregateComplianceByConfigRulesResponse {
#[serde(rename = "AggregateComplianceByConfigRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregate_compliance_by_config_rules: Option<Vec<AggregateComplianceByConfigRule>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeAggregationAuthorizationsRequest {
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeAggregationAuthorizationsResponse {
#[serde(rename = "AggregationAuthorizations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregation_authorizations: Option<Vec<AggregationAuthorization>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeComplianceByConfigRuleRequest {
#[serde(rename = "ComplianceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_types: Option<Vec<String>>,
#[serde(rename = "ConfigRuleNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_names: Option<Vec<String>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeComplianceByConfigRuleResponse {
#[serde(rename = "ComplianceByConfigRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_by_config_rules: Option<Vec<ComplianceByConfigRule>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeComplianceByResourceRequest {
#[serde(rename = "ComplianceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_types: Option<Vec<String>>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeComplianceByResourceResponse {
#[serde(rename = "ComplianceByResources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_by_resources: Option<Vec<ComplianceByResource>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeConfigRuleEvaluationStatusRequest {
#[serde(rename = "ConfigRuleNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_names: Option<Vec<String>>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeConfigRuleEvaluationStatusResponse {
#[serde(rename = "ConfigRulesEvaluationStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rules_evaluation_status: Option<Vec<ConfigRuleEvaluationStatus>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeConfigRulesRequest {
#[serde(rename = "ConfigRuleNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_names: Option<Vec<String>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeConfigRulesResponse {
#[serde(rename = "ConfigRules")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rules: Option<Vec<ConfigRule>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeConfigurationAggregatorSourcesStatusRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "UpdateStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub update_status: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeConfigurationAggregatorSourcesStatusResponse {
#[serde(rename = "AggregatedSourceStatusList")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregated_source_status_list: Option<Vec<AggregatedSourceStatus>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeConfigurationAggregatorsRequest {
#[serde(rename = "ConfigurationAggregatorNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_aggregator_names: Option<Vec<String>>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeConfigurationAggregatorsResponse {
#[serde(rename = "ConfigurationAggregators")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_aggregators: Option<Vec<ConfigurationAggregator>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeConfigurationRecorderStatusRequest {
#[serde(rename = "ConfigurationRecorderNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_recorder_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeConfigurationRecorderStatusResponse {
#[serde(rename = "ConfigurationRecordersStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_recorders_status: Option<Vec<ConfigurationRecorderStatus>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeConfigurationRecordersRequest {
#[serde(rename = "ConfigurationRecorderNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_recorder_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeConfigurationRecordersResponse {
#[serde(rename = "ConfigurationRecorders")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_recorders: Option<Vec<ConfigurationRecorder>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeDeliveryChannelStatusRequest {
#[serde(rename = "DeliveryChannelNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub delivery_channel_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeDeliveryChannelStatusResponse {
#[serde(rename = "DeliveryChannelsStatus")]
#[serde(skip_serializing_if = "Option::is_none")]
pub delivery_channels_status: Option<Vec<DeliveryChannelStatus>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeDeliveryChannelsRequest {
#[serde(rename = "DeliveryChannelNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub delivery_channel_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeDeliveryChannelsResponse {
#[serde(rename = "DeliveryChannels")]
#[serde(skip_serializing_if = "Option::is_none")]
pub delivery_channels: Option<Vec<DeliveryChannel>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribePendingAggregationRequestsRequest {
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribePendingAggregationRequestsResponse {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "PendingAggregationRequests")]
#[serde(skip_serializing_if = "Option::is_none")]
pub pending_aggregation_requests: Option<Vec<PendingAggregationRequest>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeRemediationConfigurationsRequest {
#[serde(rename = "ConfigRuleNames")]
pub config_rule_names: Vec<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeRemediationConfigurationsResponse {
#[serde(rename = "RemediationConfigurations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub remediation_configurations: Option<Vec<RemediationConfiguration>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeRemediationExecutionStatusRequest {
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "ResourceKeys")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_keys: Option<Vec<ResourceKey>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeRemediationExecutionStatusResponse {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "RemediationExecutionStatuses")]
#[serde(skip_serializing_if = "Option::is_none")]
pub remediation_execution_statuses: Option<Vec<RemediationExecutionStatus>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct DescribeRetentionConfigurationsRequest {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "RetentionConfigurationNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub retention_configuration_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct DescribeRetentionConfigurationsResponse {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "RetentionConfigurations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub retention_configurations: Option<Vec<RetentionConfiguration>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Evaluation {
#[serde(rename = "Annotation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation: Option<String>,
#[serde(rename = "ComplianceResourceId")]
pub compliance_resource_id: String,
#[serde(rename = "ComplianceResourceType")]
pub compliance_resource_type: String,
#[serde(rename = "ComplianceType")]
pub compliance_type: String,
#[serde(rename = "OrderingTimestamp")]
pub ordering_timestamp: f64,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct EvaluationResult {
#[serde(rename = "Annotation")]
#[serde(skip_serializing_if = "Option::is_none")]
pub annotation: Option<String>,
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
#[serde(rename = "ConfigRuleInvokedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_invoked_time: Option<f64>,
#[serde(rename = "EvaluationResultIdentifier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluation_result_identifier: Option<EvaluationResultIdentifier>,
#[serde(rename = "ResultRecordedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub result_recorded_time: Option<f64>,
#[serde(rename = "ResultToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub result_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct EvaluationResultIdentifier {
#[serde(rename = "EvaluationResultQualifier")]
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluation_result_qualifier: Option<EvaluationResultQualifier>,
#[serde(rename = "OrderingTimestamp")]
#[serde(skip_serializing_if = "Option::is_none")]
pub ordering_timestamp: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct EvaluationResultQualifier {
#[serde(rename = "ConfigRuleName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_name: Option<String>,
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct FailedRemediationBatch {
#[serde(rename = "FailedItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_items: Option<Vec<RemediationConfiguration>>,
#[serde(rename = "FailureMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_message: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct FieldInfo {
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetAggregateComplianceDetailsByConfigRuleRequest {
#[serde(rename = "AccountId")]
pub account_id: String,
#[serde(rename = "AwsRegion")]
pub aws_region: String,
#[serde(rename = "ComplianceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_type: Option<String>,
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetAggregateComplianceDetailsByConfigRuleResponse {
#[serde(rename = "AggregateEvaluationResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregate_evaluation_results: Option<Vec<AggregateEvaluationResult>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetAggregateConfigRuleComplianceSummaryRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<ConfigRuleComplianceSummaryFilters>,
#[serde(rename = "GroupByKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub group_by_key: Option<String>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetAggregateConfigRuleComplianceSummaryResponse {
#[serde(rename = "AggregateComplianceCounts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregate_compliance_counts: Option<Vec<AggregateComplianceCount>>,
#[serde(rename = "GroupByKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub group_by_key: Option<String>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetAggregateDiscoveredResourceCountsRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<ResourceCountFilters>,
#[serde(rename = "GroupByKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub group_by_key: Option<String>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetAggregateDiscoveredResourceCountsResponse {
#[serde(rename = "GroupByKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub group_by_key: Option<String>,
#[serde(rename = "GroupedResourceCounts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub grouped_resource_counts: Option<Vec<GroupedResourceCount>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "TotalDiscoveredResources")]
pub total_discovered_resources: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetAggregateResourceConfigRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "ResourceIdentifier")]
pub resource_identifier: AggregateResourceIdentifier,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetAggregateResourceConfigResponse {
#[serde(rename = "ConfigurationItem")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_item: Option<ConfigurationItem>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetComplianceDetailsByConfigRuleRequest {
#[serde(rename = "ComplianceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_types: Option<Vec<String>>,
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetComplianceDetailsByConfigRuleResponse {
#[serde(rename = "EvaluationResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluation_results: Option<Vec<EvaluationResult>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetComplianceDetailsByResourceRequest {
#[serde(rename = "ComplianceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_types: Option<Vec<String>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "ResourceId")]
pub resource_id: String,
#[serde(rename = "ResourceType")]
pub resource_type: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetComplianceDetailsByResourceResponse {
#[serde(rename = "EvaluationResults")]
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluation_results: Option<Vec<EvaluationResult>>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetComplianceSummaryByConfigRuleResponse {
#[serde(rename = "ComplianceSummary")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_summary: Option<ComplianceSummary>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetComplianceSummaryByResourceTypeRequest {
#[serde(rename = "ResourceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_types: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetComplianceSummaryByResourceTypeResponse {
#[serde(rename = "ComplianceSummariesByResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_summaries_by_resource_type: Option<Vec<ComplianceSummaryByResourceType>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetDiscoveredResourceCountsRequest {
#[serde(rename = "limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "resourceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_types: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetDiscoveredResourceCountsResponse {
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "resourceCounts")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_counts: Option<Vec<ResourceCount>>,
#[serde(rename = "totalDiscoveredResources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub total_discovered_resources: Option<i64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct GetResourceConfigHistoryRequest {
#[serde(rename = "chronologicalOrder")]
#[serde(skip_serializing_if = "Option::is_none")]
pub chronological_order: Option<String>,
#[serde(rename = "earlierTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub earlier_time: Option<f64>,
#[serde(rename = "laterTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub later_time: Option<f64>,
#[serde(rename = "limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "resourceId")]
pub resource_id: String,
#[serde(rename = "resourceType")]
pub resource_type: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GetResourceConfigHistoryResponse {
#[serde(rename = "configurationItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_items: Option<Vec<ConfigurationItem>>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct GroupedResourceCount {
#[serde(rename = "GroupName")]
pub group_name: String,
#[serde(rename = "ResourceCount")]
pub resource_count: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ListAggregateDiscoveredResourcesRequest {
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "Filters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub filters: Option<ResourceFilters>,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "ResourceType")]
pub resource_type: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ListAggregateDiscoveredResourcesResponse {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "ResourceIdentifiers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_identifiers: Option<Vec<AggregateResourceIdentifier>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ListDiscoveredResourcesRequest {
#[serde(rename = "includeDeletedResources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub include_deleted_resources: Option<bool>,
#[serde(rename = "limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "resourceIds")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_ids: Option<Vec<String>>,
#[serde(rename = "resourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "resourceType")]
pub resource_type: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ListDiscoveredResourcesResponse {
#[serde(rename = "nextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "resourceIdentifiers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_identifiers: Option<Vec<ResourceIdentifier>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ListTagsForResourceRequest {
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "ResourceArn")]
pub resource_arn: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ListTagsForResourceResponse {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct OrganizationAggregationSource {
#[serde(rename = "AllAwsRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub all_aws_regions: Option<bool>,
#[serde(rename = "AwsRegions")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aws_regions: Option<Vec<String>>,
#[serde(rename = "RoleArn")]
pub role_arn: String,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct PendingAggregationRequest {
#[serde(rename = "RequesterAccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requester_account_id: Option<String>,
#[serde(rename = "RequesterAwsRegion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub requester_aws_region: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutAggregationAuthorizationRequest {
#[serde(rename = "AuthorizedAccountId")]
pub authorized_account_id: String,
#[serde(rename = "AuthorizedAwsRegion")]
pub authorized_aws_region: String,
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct PutAggregationAuthorizationResponse {
#[serde(rename = "AggregationAuthorization")]
#[serde(skip_serializing_if = "Option::is_none")]
pub aggregation_authorization: Option<AggregationAuthorization>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutConfigRuleRequest {
#[serde(rename = "ConfigRule")]
pub config_rule: ConfigRule,
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutConfigurationAggregatorRequest {
#[serde(rename = "AccountAggregationSources")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_aggregation_sources: Option<Vec<AccountAggregationSource>>,
#[serde(rename = "ConfigurationAggregatorName")]
pub configuration_aggregator_name: String,
#[serde(rename = "OrganizationAggregationSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub organization_aggregation_source: Option<OrganizationAggregationSource>,
#[serde(rename = "Tags")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct PutConfigurationAggregatorResponse {
#[serde(rename = "ConfigurationAggregator")]
#[serde(skip_serializing_if = "Option::is_none")]
pub configuration_aggregator: Option<ConfigurationAggregator>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutConfigurationRecorderRequest {
#[serde(rename = "ConfigurationRecorder")]
pub configuration_recorder: ConfigurationRecorder,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutDeliveryChannelRequest {
#[serde(rename = "DeliveryChannel")]
pub delivery_channel: DeliveryChannel,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutEvaluationsRequest {
#[serde(rename = "Evaluations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub evaluations: Option<Vec<Evaluation>>,
#[serde(rename = "ResultToken")]
pub result_token: String,
#[serde(rename = "TestMode")]
#[serde(skip_serializing_if = "Option::is_none")]
pub test_mode: Option<bool>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct PutEvaluationsResponse {
#[serde(rename = "FailedEvaluations")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_evaluations: Option<Vec<Evaluation>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutRemediationConfigurationsRequest {
#[serde(rename = "RemediationConfigurations")]
pub remediation_configurations: Vec<RemediationConfiguration>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct PutRemediationConfigurationsResponse {
#[serde(rename = "FailedBatches")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_batches: Option<Vec<FailedRemediationBatch>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct PutRetentionConfigurationRequest {
#[serde(rename = "RetentionPeriodInDays")]
pub retention_period_in_days: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct PutRetentionConfigurationResponse {
#[serde(rename = "RetentionConfiguration")]
#[serde(skip_serializing_if = "Option::is_none")]
pub retention_configuration: Option<RetentionConfiguration>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct QueryInfo {
#[serde(rename = "SelectFields")]
#[serde(skip_serializing_if = "Option::is_none")]
pub select_fields: Option<Vec<FieldInfo>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RecordingGroup {
#[serde(rename = "allSupported")]
#[serde(skip_serializing_if = "Option::is_none")]
pub all_supported: Option<bool>,
#[serde(rename = "includeGlobalResourceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub include_global_resource_types: Option<bool>,
#[serde(rename = "resourceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_types: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct Relationship {
#[serde(rename = "relationshipName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub relationship_name: Option<String>,
#[serde(rename = "resourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "resourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "resourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RemediationConfiguration {
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
#[serde(rename = "Parameters")]
#[serde(skip_serializing_if = "Option::is_none")]
pub parameters: Option<::std::collections::HashMap<String, RemediationParameterValue>>,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
#[serde(rename = "TargetId")]
pub target_id: String,
#[serde(rename = "TargetType")]
pub target_type: String,
#[serde(rename = "TargetVersion")]
#[serde(skip_serializing_if = "Option::is_none")]
pub target_version: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct RemediationExecutionStatus {
#[serde(rename = "InvocationTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub invocation_time: Option<f64>,
#[serde(rename = "LastUpdatedTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub last_updated_time: Option<f64>,
#[serde(rename = "ResourceKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_key: Option<ResourceKey>,
#[serde(rename = "State")]
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(rename = "StepDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub step_details: Option<Vec<RemediationExecutionStep>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct RemediationExecutionStep {
#[serde(rename = "ErrorMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub error_message: Option<String>,
#[serde(rename = "Name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "StartTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub start_time: Option<f64>,
#[serde(rename = "State")]
#[serde(skip_serializing_if = "Option::is_none")]
pub state: Option<String>,
#[serde(rename = "StopTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub stop_time: Option<f64>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct RemediationParameterValue {
#[serde(rename = "ResourceValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_value: Option<ResourceValue>,
#[serde(rename = "StaticValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub static_value: Option<StaticValue>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ResourceCount {
#[serde(rename = "count")]
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<i64>,
#[serde(rename = "resourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ResourceCountFilters {
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "Region")]
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(rename = "ResourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct ResourceFilters {
#[serde(rename = "AccountId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub account_id: Option<String>,
#[serde(rename = "Region")]
#[serde(skip_serializing_if = "Option::is_none")]
pub region: Option<String>,
#[serde(rename = "ResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "ResourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct ResourceIdentifier {
#[serde(rename = "resourceDeletionTime")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_deletion_time: Option<f64>,
#[serde(rename = "resourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_id: Option<String>,
#[serde(rename = "resourceName")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_name: Option<String>,
#[serde(rename = "resourceType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub resource_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ResourceKey {
#[serde(rename = "resourceId")]
pub resource_id: String,
#[serde(rename = "resourceType")]
pub resource_type: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct ResourceValue {
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct RetentionConfiguration {
#[serde(rename = "Name")]
pub name: String,
#[serde(rename = "RetentionPeriodInDays")]
pub retention_period_in_days: i64,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Scope {
#[serde(rename = "ComplianceResourceId")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_resource_id: Option<String>,
#[serde(rename = "ComplianceResourceTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub compliance_resource_types: Option<Vec<String>>,
#[serde(rename = "TagKey")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_key: Option<String>,
#[serde(rename = "TagValue")]
#[serde(skip_serializing_if = "Option::is_none")]
pub tag_value: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct SelectResourceConfigRequest {
#[serde(rename = "Expression")]
pub expression: String,
#[serde(rename = "Limit")]
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct SelectResourceConfigResponse {
#[serde(rename = "NextToken")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_token: Option<String>,
#[serde(rename = "QueryInfo")]
#[serde(skip_serializing_if = "Option::is_none")]
pub query_info: Option<QueryInfo>,
#[serde(rename = "Results")]
#[serde(skip_serializing_if = "Option::is_none")]
pub results: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Source {
#[serde(rename = "Owner")]
pub owner: String,
#[serde(rename = "SourceDetails")]
#[serde(skip_serializing_if = "Option::is_none")]
pub source_details: Option<Vec<SourceDetail>>,
#[serde(rename = "SourceIdentifier")]
pub source_identifier: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct SourceDetail {
#[serde(rename = "EventSource")]
#[serde(skip_serializing_if = "Option::is_none")]
pub event_source: Option<String>,
#[serde(rename = "MaximumExecutionFrequency")]
#[serde(skip_serializing_if = "Option::is_none")]
pub maximum_execution_frequency: Option<String>,
#[serde(rename = "MessageType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub message_type: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct StartConfigRulesEvaluationRequest {
#[serde(rename = "ConfigRuleNames")]
#[serde(skip_serializing_if = "Option::is_none")]
pub config_rule_names: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct StartConfigRulesEvaluationResponse {}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct StartConfigurationRecorderRequest {
#[serde(rename = "ConfigurationRecorderName")]
pub configuration_recorder_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct StartRemediationExecutionRequest {
#[serde(rename = "ConfigRuleName")]
pub config_rule_name: String,
#[serde(rename = "ResourceKeys")]
pub resource_keys: Vec<ResourceKey>,
}
#[derive(Default, Debug, Clone, PartialEq, Deserialize)]
#[cfg_attr(test, derive(Serialize))]
pub struct StartRemediationExecutionResponse {
#[serde(rename = "FailedItems")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failed_items: Option<Vec<ResourceKey>>,
#[serde(rename = "FailureMessage")]
#[serde(skip_serializing_if = "Option::is_none")]
pub failure_message: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct StaticValue {
#[serde(rename = "Values")]
#[serde(skip_serializing_if = "Option::is_none")]
pub values: Option<Vec<String>>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct StopConfigurationRecorderRequest {
#[serde(rename = "ConfigurationRecorderName")]
pub configuration_recorder_name: String,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct Tag {
#[serde(rename = "Key")]
#[serde(skip_serializing_if = "Option::is_none")]
pub key: Option<String>,
#[serde(rename = "Value")]
#[serde(skip_serializing_if = "Option::is_none")]
pub value: Option<String>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct TagResourceRequest {
#[serde(rename = "ResourceArn")]
pub resource_arn: String,
#[serde(rename = "Tags")]
pub tags: Vec<Tag>,
}
#[derive(Default, Debug, Clone, PartialEq, Serialize)]
pub struct UntagResourceRequest {
#[serde(rename = "ResourceArn")]
pub resource_arn: String,
#[serde(rename = "TagKeys")]
pub tag_keys: Vec<String>,
}
#[derive(Debug, PartialEq)]
pub enum BatchGetAggregateResourceConfigError {
NoSuchConfigurationAggregator(String),
}
impl BatchGetAggregateResourceConfigError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<BatchGetAggregateResourceConfigError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
BatchGetAggregateResourceConfigError::NoSuchConfigurationAggregator(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for BatchGetAggregateResourceConfigError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for BatchGetAggregateResourceConfigError {
fn description(&self) -> &str {
match *self {
BatchGetAggregateResourceConfigError::NoSuchConfigurationAggregator(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum BatchGetResourceConfigError {
NoAvailableConfigurationRecorder(String),
}
impl BatchGetResourceConfigError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<BatchGetResourceConfigError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoAvailableConfigurationRecorderException" => {
return RusotoError::Service(
BatchGetResourceConfigError::NoAvailableConfigurationRecorder(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for BatchGetResourceConfigError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for BatchGetResourceConfigError {
fn description(&self) -> &str {
match *self {
BatchGetResourceConfigError::NoAvailableConfigurationRecorder(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteAggregationAuthorizationError {
InvalidParameterValue(String),
}
impl DeleteAggregationAuthorizationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeleteAggregationAuthorizationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
DeleteAggregationAuthorizationError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteAggregationAuthorizationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteAggregationAuthorizationError {
fn description(&self) -> &str {
match *self {
DeleteAggregationAuthorizationError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteConfigRuleError {
NoSuchConfigRule(String),
ResourceInUse(String),
}
impl DeleteConfigRuleError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteConfigRuleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigRuleException" => {
return RusotoError::Service(DeleteConfigRuleError::NoSuchConfigRule(err.msg))
}
"ResourceInUseException" => {
return RusotoError::Service(DeleteConfigRuleError::ResourceInUse(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteConfigRuleError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteConfigRuleError {
fn description(&self) -> &str {
match *self {
DeleteConfigRuleError::NoSuchConfigRule(ref cause) => cause,
DeleteConfigRuleError::ResourceInUse(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteConfigurationAggregatorError {
NoSuchConfigurationAggregator(String),
}
impl DeleteConfigurationAggregatorError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeleteConfigurationAggregatorError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
DeleteConfigurationAggregatorError::NoSuchConfigurationAggregator(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteConfigurationAggregatorError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteConfigurationAggregatorError {
fn description(&self) -> &str {
match *self {
DeleteConfigurationAggregatorError::NoSuchConfigurationAggregator(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteConfigurationRecorderError {
NoSuchConfigurationRecorder(String),
}
impl DeleteConfigurationRecorderError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeleteConfigurationRecorderError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationRecorderException" => {
return RusotoError::Service(
DeleteConfigurationRecorderError::NoSuchConfigurationRecorder(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteConfigurationRecorderError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteConfigurationRecorderError {
fn description(&self) -> &str {
match *self {
DeleteConfigurationRecorderError::NoSuchConfigurationRecorder(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteDeliveryChannelError {
LastDeliveryChannelDeleteFailed(String),
NoSuchDeliveryChannel(String),
}
impl DeleteDeliveryChannelError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteDeliveryChannelError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"LastDeliveryChannelDeleteFailedException" => {
return RusotoError::Service(
DeleteDeliveryChannelError::LastDeliveryChannelDeleteFailed(err.msg),
)
}
"NoSuchDeliveryChannelException" => {
return RusotoError::Service(DeleteDeliveryChannelError::NoSuchDeliveryChannel(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteDeliveryChannelError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteDeliveryChannelError {
fn description(&self) -> &str {
match *self {
DeleteDeliveryChannelError::LastDeliveryChannelDeleteFailed(ref cause) => cause,
DeleteDeliveryChannelError::NoSuchDeliveryChannel(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteEvaluationResultsError {
NoSuchConfigRule(String),
ResourceInUse(String),
}
impl DeleteEvaluationResultsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeleteEvaluationResultsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigRuleException" => {
return RusotoError::Service(DeleteEvaluationResultsError::NoSuchConfigRule(
err.msg,
))
}
"ResourceInUseException" => {
return RusotoError::Service(DeleteEvaluationResultsError::ResourceInUse(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteEvaluationResultsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteEvaluationResultsError {
fn description(&self) -> &str {
match *self {
DeleteEvaluationResultsError::NoSuchConfigRule(ref cause) => cause,
DeleteEvaluationResultsError::ResourceInUse(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeletePendingAggregationRequestError {
InvalidParameterValue(String),
}
impl DeletePendingAggregationRequestError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeletePendingAggregationRequestError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
DeletePendingAggregationRequestError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeletePendingAggregationRequestError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeletePendingAggregationRequestError {
fn description(&self) -> &str {
match *self {
DeletePendingAggregationRequestError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteRemediationConfigurationError {
NoSuchRemediationConfiguration(String),
}
impl DeleteRemediationConfigurationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeleteRemediationConfigurationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchRemediationConfigurationException" => {
return RusotoError::Service(
DeleteRemediationConfigurationError::NoSuchRemediationConfiguration(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteRemediationConfigurationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteRemediationConfigurationError {
fn description(&self) -> &str {
match *self {
DeleteRemediationConfigurationError::NoSuchRemediationConfiguration(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeleteRetentionConfigurationError {
InvalidParameterValue(String),
NoSuchRetentionConfiguration(String),
}
impl DeleteRetentionConfigurationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DeleteRetentionConfigurationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
DeleteRetentionConfigurationError::InvalidParameterValue(err.msg),
)
}
"NoSuchRetentionConfigurationException" => {
return RusotoError::Service(
DeleteRetentionConfigurationError::NoSuchRetentionConfiguration(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeleteRetentionConfigurationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeleteRetentionConfigurationError {
fn description(&self) -> &str {
match *self {
DeleteRetentionConfigurationError::InvalidParameterValue(ref cause) => cause,
DeleteRetentionConfigurationError::NoSuchRetentionConfiguration(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DeliverConfigSnapshotError {
NoAvailableConfigurationRecorder(String),
NoRunningConfigurationRecorder(String),
NoSuchDeliveryChannel(String),
}
impl DeliverConfigSnapshotError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DeliverConfigSnapshotError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoAvailableConfigurationRecorderException" => {
return RusotoError::Service(
DeliverConfigSnapshotError::NoAvailableConfigurationRecorder(err.msg),
)
}
"NoRunningConfigurationRecorderException" => {
return RusotoError::Service(
DeliverConfigSnapshotError::NoRunningConfigurationRecorder(err.msg),
)
}
"NoSuchDeliveryChannelException" => {
return RusotoError::Service(DeliverConfigSnapshotError::NoSuchDeliveryChannel(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DeliverConfigSnapshotError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DeliverConfigSnapshotError {
fn description(&self) -> &str {
match *self {
DeliverConfigSnapshotError::NoAvailableConfigurationRecorder(ref cause) => cause,
DeliverConfigSnapshotError::NoRunningConfigurationRecorder(ref cause) => cause,
DeliverConfigSnapshotError::NoSuchDeliveryChannel(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeAggregateComplianceByConfigRulesError {
InvalidLimit(String),
InvalidNextToken(String),
NoSuchConfigurationAggregator(String),
}
impl DescribeAggregateComplianceByConfigRulesError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeAggregateComplianceByConfigRulesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
DescribeAggregateComplianceByConfigRulesError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeAggregateComplianceByConfigRulesError::InvalidNextToken(err.msg),
)
}
"NoSuchConfigurationAggregatorException" => return RusotoError::Service(
DescribeAggregateComplianceByConfigRulesError::NoSuchConfigurationAggregator(
err.msg,
),
),
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeAggregateComplianceByConfigRulesError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeAggregateComplianceByConfigRulesError {
fn description(&self) -> &str {
match *self {
DescribeAggregateComplianceByConfigRulesError::InvalidLimit(ref cause) => cause,
DescribeAggregateComplianceByConfigRulesError::InvalidNextToken(ref cause) => cause,
DescribeAggregateComplianceByConfigRulesError::NoSuchConfigurationAggregator(
ref cause,
) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeAggregationAuthorizationsError {
InvalidLimit(String),
InvalidNextToken(String),
InvalidParameterValue(String),
}
impl DescribeAggregationAuthorizationsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeAggregationAuthorizationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
DescribeAggregationAuthorizationsError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeAggregationAuthorizationsError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribeAggregationAuthorizationsError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeAggregationAuthorizationsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeAggregationAuthorizationsError {
fn description(&self) -> &str {
match *self {
DescribeAggregationAuthorizationsError::InvalidLimit(ref cause) => cause,
DescribeAggregationAuthorizationsError::InvalidNextToken(ref cause) => cause,
DescribeAggregationAuthorizationsError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeComplianceByConfigRuleError {
InvalidNextToken(String),
InvalidParameterValue(String),
NoSuchConfigRule(String),
}
impl DescribeComplianceByConfigRuleError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeComplianceByConfigRuleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeComplianceByConfigRuleError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribeComplianceByConfigRuleError::InvalidParameterValue(err.msg),
)
}
"NoSuchConfigRuleException" => {
return RusotoError::Service(
DescribeComplianceByConfigRuleError::NoSuchConfigRule(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeComplianceByConfigRuleError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeComplianceByConfigRuleError {
fn description(&self) -> &str {
match *self {
DescribeComplianceByConfigRuleError::InvalidNextToken(ref cause) => cause,
DescribeComplianceByConfigRuleError::InvalidParameterValue(ref cause) => cause,
DescribeComplianceByConfigRuleError::NoSuchConfigRule(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeComplianceByResourceError {
InvalidNextToken(String),
InvalidParameterValue(String),
}
impl DescribeComplianceByResourceError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeComplianceByResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeComplianceByResourceError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribeComplianceByResourceError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeComplianceByResourceError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeComplianceByResourceError {
fn description(&self) -> &str {
match *self {
DescribeComplianceByResourceError::InvalidNextToken(ref cause) => cause,
DescribeComplianceByResourceError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeConfigRuleEvaluationStatusError {
InvalidNextToken(String),
InvalidParameterValue(String),
NoSuchConfigRule(String),
}
impl DescribeConfigRuleEvaluationStatusError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeConfigRuleEvaluationStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeConfigRuleEvaluationStatusError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribeConfigRuleEvaluationStatusError::InvalidParameterValue(err.msg),
)
}
"NoSuchConfigRuleException" => {
return RusotoError::Service(
DescribeConfigRuleEvaluationStatusError::NoSuchConfigRule(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeConfigRuleEvaluationStatusError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeConfigRuleEvaluationStatusError {
fn description(&self) -> &str {
match *self {
DescribeConfigRuleEvaluationStatusError::InvalidNextToken(ref cause) => cause,
DescribeConfigRuleEvaluationStatusError::InvalidParameterValue(ref cause) => cause,
DescribeConfigRuleEvaluationStatusError::NoSuchConfigRule(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeConfigRulesError {
InvalidNextToken(String),
NoSuchConfigRule(String),
}
impl DescribeConfigRulesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeConfigRulesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidNextTokenException" => {
return RusotoError::Service(DescribeConfigRulesError::InvalidNextToken(
err.msg,
))
}
"NoSuchConfigRuleException" => {
return RusotoError::Service(DescribeConfigRulesError::NoSuchConfigRule(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeConfigRulesError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeConfigRulesError {
fn description(&self) -> &str {
match *self {
DescribeConfigRulesError::InvalidNextToken(ref cause) => cause,
DescribeConfigRulesError::NoSuchConfigRule(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeConfigurationAggregatorSourcesStatusError {
InvalidLimit(String),
InvalidNextToken(String),
InvalidParameterValue(String),
NoSuchConfigurationAggregator(String),
}
impl DescribeConfigurationAggregatorSourcesStatusError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeConfigurationAggregatorSourcesStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => return RusotoError::Service(DescribeConfigurationAggregatorSourcesStatusError::InvalidLimit(err.msg)),
"InvalidNextTokenException" => return RusotoError::Service(DescribeConfigurationAggregatorSourcesStatusError::InvalidNextToken(err.msg)),
"InvalidParameterValueException" => return RusotoError::Service(DescribeConfigurationAggregatorSourcesStatusError::InvalidParameterValue(err.msg)),
"NoSuchConfigurationAggregatorException" => return RusotoError::Service(DescribeConfigurationAggregatorSourcesStatusError::NoSuchConfigurationAggregator(err.msg)),
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeConfigurationAggregatorSourcesStatusError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeConfigurationAggregatorSourcesStatusError {
fn description(&self) -> &str {
match *self {
DescribeConfigurationAggregatorSourcesStatusError::InvalidLimit(ref cause) => cause,
DescribeConfigurationAggregatorSourcesStatusError::InvalidNextToken(ref cause) => cause,
DescribeConfigurationAggregatorSourcesStatusError::InvalidParameterValue(ref cause) => {
cause
}
DescribeConfigurationAggregatorSourcesStatusError::NoSuchConfigurationAggregator(
ref cause,
) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeConfigurationAggregatorsError {
InvalidLimit(String),
InvalidNextToken(String),
InvalidParameterValue(String),
NoSuchConfigurationAggregator(String),
}
impl DescribeConfigurationAggregatorsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeConfigurationAggregatorsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
DescribeConfigurationAggregatorsError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeConfigurationAggregatorsError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribeConfigurationAggregatorsError::InvalidParameterValue(err.msg),
)
}
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
DescribeConfigurationAggregatorsError::NoSuchConfigurationAggregator(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeConfigurationAggregatorsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeConfigurationAggregatorsError {
fn description(&self) -> &str {
match *self {
DescribeConfigurationAggregatorsError::InvalidLimit(ref cause) => cause,
DescribeConfigurationAggregatorsError::InvalidNextToken(ref cause) => cause,
DescribeConfigurationAggregatorsError::InvalidParameterValue(ref cause) => cause,
DescribeConfigurationAggregatorsError::NoSuchConfigurationAggregator(ref cause) => {
cause
}
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeConfigurationRecorderStatusError {
NoSuchConfigurationRecorder(String),
}
impl DescribeConfigurationRecorderStatusError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeConfigurationRecorderStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationRecorderException" => {
return RusotoError::Service(
DescribeConfigurationRecorderStatusError::NoSuchConfigurationRecorder(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeConfigurationRecorderStatusError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeConfigurationRecorderStatusError {
fn description(&self) -> &str {
match *self {
DescribeConfigurationRecorderStatusError::NoSuchConfigurationRecorder(ref cause) => {
cause
}
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeConfigurationRecordersError {
NoSuchConfigurationRecorder(String),
}
impl DescribeConfigurationRecordersError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeConfigurationRecordersError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationRecorderException" => {
return RusotoError::Service(
DescribeConfigurationRecordersError::NoSuchConfigurationRecorder(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeConfigurationRecordersError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeConfigurationRecordersError {
fn description(&self) -> &str {
match *self {
DescribeConfigurationRecordersError::NoSuchConfigurationRecorder(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeDeliveryChannelStatusError {
NoSuchDeliveryChannel(String),
}
impl DescribeDeliveryChannelStatusError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeDeliveryChannelStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchDeliveryChannelException" => {
return RusotoError::Service(
DescribeDeliveryChannelStatusError::NoSuchDeliveryChannel(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeDeliveryChannelStatusError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeDeliveryChannelStatusError {
fn description(&self) -> &str {
match *self {
DescribeDeliveryChannelStatusError::NoSuchDeliveryChannel(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeDeliveryChannelsError {
NoSuchDeliveryChannel(String),
}
impl DescribeDeliveryChannelsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<DescribeDeliveryChannelsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchDeliveryChannelException" => {
return RusotoError::Service(
DescribeDeliveryChannelsError::NoSuchDeliveryChannel(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeDeliveryChannelsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeDeliveryChannelsError {
fn description(&self) -> &str {
match *self {
DescribeDeliveryChannelsError::NoSuchDeliveryChannel(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribePendingAggregationRequestsError {
InvalidLimit(String),
InvalidNextToken(String),
InvalidParameterValue(String),
}
impl DescribePendingAggregationRequestsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribePendingAggregationRequestsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
DescribePendingAggregationRequestsError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribePendingAggregationRequestsError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribePendingAggregationRequestsError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribePendingAggregationRequestsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribePendingAggregationRequestsError {
fn description(&self) -> &str {
match *self {
DescribePendingAggregationRequestsError::InvalidLimit(ref cause) => cause,
DescribePendingAggregationRequestsError::InvalidNextToken(ref cause) => cause,
DescribePendingAggregationRequestsError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeRemediationConfigurationsError {}
impl DescribeRemediationConfigurationsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeRemediationConfigurationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeRemediationConfigurationsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeRemediationConfigurationsError {
fn description(&self) -> &str {
match *self {}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeRemediationExecutionStatusError {
NoSuchRemediationConfiguration(String),
}
impl DescribeRemediationExecutionStatusError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeRemediationExecutionStatusError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchRemediationConfigurationException" => {
return RusotoError::Service(
DescribeRemediationExecutionStatusError::NoSuchRemediationConfiguration(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeRemediationExecutionStatusError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeRemediationExecutionStatusError {
fn description(&self) -> &str {
match *self {
DescribeRemediationExecutionStatusError::NoSuchRemediationConfiguration(ref cause) => {
cause
}
}
}
}
#[derive(Debug, PartialEq)]
pub enum DescribeRetentionConfigurationsError {
InvalidNextToken(String),
InvalidParameterValue(String),
NoSuchRetentionConfiguration(String),
}
impl DescribeRetentionConfigurationsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<DescribeRetentionConfigurationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidNextTokenException" => {
return RusotoError::Service(
DescribeRetentionConfigurationsError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
DescribeRetentionConfigurationsError::InvalidParameterValue(err.msg),
)
}
"NoSuchRetentionConfigurationException" => {
return RusotoError::Service(
DescribeRetentionConfigurationsError::NoSuchRetentionConfiguration(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for DescribeRetentionConfigurationsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for DescribeRetentionConfigurationsError {
fn description(&self) -> &str {
match *self {
DescribeRetentionConfigurationsError::InvalidNextToken(ref cause) => cause,
DescribeRetentionConfigurationsError::InvalidParameterValue(ref cause) => cause,
DescribeRetentionConfigurationsError::NoSuchRetentionConfiguration(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetAggregateComplianceDetailsByConfigRuleError {
InvalidLimit(String),
InvalidNextToken(String),
NoSuchConfigurationAggregator(String),
}
impl GetAggregateComplianceDetailsByConfigRuleError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetAggregateComplianceDetailsByConfigRuleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
GetAggregateComplianceDetailsByConfigRuleError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
GetAggregateComplianceDetailsByConfigRuleError::InvalidNextToken(err.msg),
)
}
"NoSuchConfigurationAggregatorException" => return RusotoError::Service(
GetAggregateComplianceDetailsByConfigRuleError::NoSuchConfigurationAggregator(
err.msg,
),
),
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetAggregateComplianceDetailsByConfigRuleError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetAggregateComplianceDetailsByConfigRuleError {
fn description(&self) -> &str {
match *self {
GetAggregateComplianceDetailsByConfigRuleError::InvalidLimit(ref cause) => cause,
GetAggregateComplianceDetailsByConfigRuleError::InvalidNextToken(ref cause) => cause,
GetAggregateComplianceDetailsByConfigRuleError::NoSuchConfigurationAggregator(
ref cause,
) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetAggregateConfigRuleComplianceSummaryError {
InvalidLimit(String),
InvalidNextToken(String),
NoSuchConfigurationAggregator(String),
}
impl GetAggregateConfigRuleComplianceSummaryError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetAggregateConfigRuleComplianceSummaryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
GetAggregateConfigRuleComplianceSummaryError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
GetAggregateConfigRuleComplianceSummaryError::InvalidNextToken(err.msg),
)
}
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
GetAggregateConfigRuleComplianceSummaryError::NoSuchConfigurationAggregator(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetAggregateConfigRuleComplianceSummaryError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetAggregateConfigRuleComplianceSummaryError {
fn description(&self) -> &str {
match *self {
GetAggregateConfigRuleComplianceSummaryError::InvalidLimit(ref cause) => cause,
GetAggregateConfigRuleComplianceSummaryError::InvalidNextToken(ref cause) => cause,
GetAggregateConfigRuleComplianceSummaryError::NoSuchConfigurationAggregator(
ref cause,
) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetAggregateDiscoveredResourceCountsError {
InvalidLimit(String),
InvalidNextToken(String),
NoSuchConfigurationAggregator(String),
}
impl GetAggregateDiscoveredResourceCountsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetAggregateDiscoveredResourceCountsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
GetAggregateDiscoveredResourceCountsError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
GetAggregateDiscoveredResourceCountsError::InvalidNextToken(err.msg),
)
}
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
GetAggregateDiscoveredResourceCountsError::NoSuchConfigurationAggregator(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetAggregateDiscoveredResourceCountsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetAggregateDiscoveredResourceCountsError {
fn description(&self) -> &str {
match *self {
GetAggregateDiscoveredResourceCountsError::InvalidLimit(ref cause) => cause,
GetAggregateDiscoveredResourceCountsError::InvalidNextToken(ref cause) => cause,
GetAggregateDiscoveredResourceCountsError::NoSuchConfigurationAggregator(ref cause) => {
cause
}
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetAggregateResourceConfigError {
NoSuchConfigurationAggregator(String),
OversizedConfigurationItem(String),
ResourceNotDiscovered(String),
}
impl GetAggregateResourceConfigError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetAggregateResourceConfigError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
GetAggregateResourceConfigError::NoSuchConfigurationAggregator(err.msg),
)
}
"OversizedConfigurationItemException" => {
return RusotoError::Service(
GetAggregateResourceConfigError::OversizedConfigurationItem(err.msg),
)
}
"ResourceNotDiscoveredException" => {
return RusotoError::Service(
GetAggregateResourceConfigError::ResourceNotDiscovered(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetAggregateResourceConfigError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetAggregateResourceConfigError {
fn description(&self) -> &str {
match *self {
GetAggregateResourceConfigError::NoSuchConfigurationAggregator(ref cause) => cause,
GetAggregateResourceConfigError::OversizedConfigurationItem(ref cause) => cause,
GetAggregateResourceConfigError::ResourceNotDiscovered(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetComplianceDetailsByConfigRuleError {
InvalidNextToken(String),
InvalidParameterValue(String),
NoSuchConfigRule(String),
}
impl GetComplianceDetailsByConfigRuleError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetComplianceDetailsByConfigRuleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidNextTokenException" => {
return RusotoError::Service(
GetComplianceDetailsByConfigRuleError::InvalidNextToken(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
GetComplianceDetailsByConfigRuleError::InvalidParameterValue(err.msg),
)
}
"NoSuchConfigRuleException" => {
return RusotoError::Service(
GetComplianceDetailsByConfigRuleError::NoSuchConfigRule(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetComplianceDetailsByConfigRuleError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetComplianceDetailsByConfigRuleError {
fn description(&self) -> &str {
match *self {
GetComplianceDetailsByConfigRuleError::InvalidNextToken(ref cause) => cause,
GetComplianceDetailsByConfigRuleError::InvalidParameterValue(ref cause) => cause,
GetComplianceDetailsByConfigRuleError::NoSuchConfigRule(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetComplianceDetailsByResourceError {
InvalidParameterValue(String),
}
impl GetComplianceDetailsByResourceError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetComplianceDetailsByResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
GetComplianceDetailsByResourceError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetComplianceDetailsByResourceError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetComplianceDetailsByResourceError {
fn description(&self) -> &str {
match *self {
GetComplianceDetailsByResourceError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetComplianceSummaryByConfigRuleError {}
impl GetComplianceSummaryByConfigRuleError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetComplianceSummaryByConfigRuleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetComplianceSummaryByConfigRuleError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetComplianceSummaryByConfigRuleError {
fn description(&self) -> &str {
match *self {}
}
}
#[derive(Debug, PartialEq)]
pub enum GetComplianceSummaryByResourceTypeError {
InvalidParameterValue(String),
}
impl GetComplianceSummaryByResourceTypeError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetComplianceSummaryByResourceTypeError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
GetComplianceSummaryByResourceTypeError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetComplianceSummaryByResourceTypeError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetComplianceSummaryByResourceTypeError {
fn description(&self) -> &str {
match *self {
GetComplianceSummaryByResourceTypeError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetDiscoveredResourceCountsError {
InvalidLimit(String),
InvalidNextToken(String),
}
impl GetDiscoveredResourceCountsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<GetDiscoveredResourceCountsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(GetDiscoveredResourceCountsError::InvalidLimit(
err.msg,
))
}
"InvalidNextTokenException" => {
return RusotoError::Service(
GetDiscoveredResourceCountsError::InvalidNextToken(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetDiscoveredResourceCountsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetDiscoveredResourceCountsError {
fn description(&self) -> &str {
match *self {
GetDiscoveredResourceCountsError::InvalidLimit(ref cause) => cause,
GetDiscoveredResourceCountsError::InvalidNextToken(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum GetResourceConfigHistoryError {
InvalidLimit(String),
InvalidNextToken(String),
InvalidTimeRange(String),
NoAvailableConfigurationRecorder(String),
ResourceNotDiscovered(String),
}
impl GetResourceConfigHistoryError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<GetResourceConfigHistoryError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(GetResourceConfigHistoryError::InvalidLimit(
err.msg,
))
}
"InvalidNextTokenException" => {
return RusotoError::Service(GetResourceConfigHistoryError::InvalidNextToken(
err.msg,
))
}
"InvalidTimeRangeException" => {
return RusotoError::Service(GetResourceConfigHistoryError::InvalidTimeRange(
err.msg,
))
}
"NoAvailableConfigurationRecorderException" => {
return RusotoError::Service(
GetResourceConfigHistoryError::NoAvailableConfigurationRecorder(err.msg),
)
}
"ResourceNotDiscoveredException" => {
return RusotoError::Service(
GetResourceConfigHistoryError::ResourceNotDiscovered(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for GetResourceConfigHistoryError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for GetResourceConfigHistoryError {
fn description(&self) -> &str {
match *self {
GetResourceConfigHistoryError::InvalidLimit(ref cause) => cause,
GetResourceConfigHistoryError::InvalidNextToken(ref cause) => cause,
GetResourceConfigHistoryError::InvalidTimeRange(ref cause) => cause,
GetResourceConfigHistoryError::NoAvailableConfigurationRecorder(ref cause) => cause,
GetResourceConfigHistoryError::ResourceNotDiscovered(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum ListAggregateDiscoveredResourcesError {
InvalidLimit(String),
InvalidNextToken(String),
NoSuchConfigurationAggregator(String),
}
impl ListAggregateDiscoveredResourcesError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<ListAggregateDiscoveredResourcesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(
ListAggregateDiscoveredResourcesError::InvalidLimit(err.msg),
)
}
"InvalidNextTokenException" => {
return RusotoError::Service(
ListAggregateDiscoveredResourcesError::InvalidNextToken(err.msg),
)
}
"NoSuchConfigurationAggregatorException" => {
return RusotoError::Service(
ListAggregateDiscoveredResourcesError::NoSuchConfigurationAggregator(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for ListAggregateDiscoveredResourcesError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for ListAggregateDiscoveredResourcesError {
fn description(&self) -> &str {
match *self {
ListAggregateDiscoveredResourcesError::InvalidLimit(ref cause) => cause,
ListAggregateDiscoveredResourcesError::InvalidNextToken(ref cause) => cause,
ListAggregateDiscoveredResourcesError::NoSuchConfigurationAggregator(ref cause) => {
cause
}
}
}
}
#[derive(Debug, PartialEq)]
pub enum ListDiscoveredResourcesError {
InvalidLimit(String),
InvalidNextToken(String),
NoAvailableConfigurationRecorder(String),
}
impl ListDiscoveredResourcesError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListDiscoveredResourcesError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(ListDiscoveredResourcesError::InvalidLimit(
err.msg,
))
}
"InvalidNextTokenException" => {
return RusotoError::Service(ListDiscoveredResourcesError::InvalidNextToken(
err.msg,
))
}
"NoAvailableConfigurationRecorderException" => {
return RusotoError::Service(
ListDiscoveredResourcesError::NoAvailableConfigurationRecorder(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for ListDiscoveredResourcesError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for ListDiscoveredResourcesError {
fn description(&self) -> &str {
match *self {
ListDiscoveredResourcesError::InvalidLimit(ref cause) => cause,
ListDiscoveredResourcesError::InvalidNextToken(ref cause) => cause,
ListDiscoveredResourcesError::NoAvailableConfigurationRecorder(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum ListTagsForResourceError {
InvalidLimit(String),
InvalidNextToken(String),
ResourceNotFound(String),
}
impl ListTagsForResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<ListTagsForResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidLimitException" => {
return RusotoError::Service(ListTagsForResourceError::InvalidLimit(err.msg))
}
"InvalidNextTokenException" => {
return RusotoError::Service(ListTagsForResourceError::InvalidNextToken(
err.msg,
))
}
"ResourceNotFoundException" => {
return RusotoError::Service(ListTagsForResourceError::ResourceNotFound(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for ListTagsForResourceError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for ListTagsForResourceError {
fn description(&self) -> &str {
match *self {
ListTagsForResourceError::InvalidLimit(ref cause) => cause,
ListTagsForResourceError::InvalidNextToken(ref cause) => cause,
ListTagsForResourceError::ResourceNotFound(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutAggregationAuthorizationError {
InvalidParameterValue(String),
}
impl PutAggregationAuthorizationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<PutAggregationAuthorizationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
PutAggregationAuthorizationError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutAggregationAuthorizationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutAggregationAuthorizationError {
fn description(&self) -> &str {
match *self {
PutAggregationAuthorizationError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutConfigRuleError {
InsufficientPermissions(String),
InvalidParameterValue(String),
MaxNumberOfConfigRulesExceeded(String),
NoAvailableConfigurationRecorder(String),
ResourceInUse(String),
}
impl PutConfigRuleError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutConfigRuleError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InsufficientPermissionsException" => {
return RusotoError::Service(PutConfigRuleError::InsufficientPermissions(
err.msg,
))
}
"InvalidParameterValueException" => {
return RusotoError::Service(PutConfigRuleError::InvalidParameterValue(err.msg))
}
"MaxNumberOfConfigRulesExceededException" => {
return RusotoError::Service(
PutConfigRuleError::MaxNumberOfConfigRulesExceeded(err.msg),
)
}
"NoAvailableConfigurationRecorderException" => {
return RusotoError::Service(
PutConfigRuleError::NoAvailableConfigurationRecorder(err.msg),
)
}
"ResourceInUseException" => {
return RusotoError::Service(PutConfigRuleError::ResourceInUse(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutConfigRuleError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutConfigRuleError {
fn description(&self) -> &str {
match *self {
PutConfigRuleError::InsufficientPermissions(ref cause) => cause,
PutConfigRuleError::InvalidParameterValue(ref cause) => cause,
PutConfigRuleError::MaxNumberOfConfigRulesExceeded(ref cause) => cause,
PutConfigRuleError::NoAvailableConfigurationRecorder(ref cause) => cause,
PutConfigRuleError::ResourceInUse(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutConfigurationAggregatorError {
InvalidParameterValue(String),
InvalidRole(String),
LimitExceeded(String),
NoAvailableOrganization(String),
OrganizationAccessDenied(String),
OrganizationAllFeaturesNotEnabled(String),
}
impl PutConfigurationAggregatorError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<PutConfigurationAggregatorError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
PutConfigurationAggregatorError::InvalidParameterValue(err.msg),
)
}
"InvalidRoleException" => {
return RusotoError::Service(PutConfigurationAggregatorError::InvalidRole(
err.msg,
))
}
"LimitExceededException" => {
return RusotoError::Service(PutConfigurationAggregatorError::LimitExceeded(
err.msg,
))
}
"NoAvailableOrganizationException" => {
return RusotoError::Service(
PutConfigurationAggregatorError::NoAvailableOrganization(err.msg),
)
}
"OrganizationAccessDeniedException" => {
return RusotoError::Service(
PutConfigurationAggregatorError::OrganizationAccessDenied(err.msg),
)
}
"OrganizationAllFeaturesNotEnabledException" => {
return RusotoError::Service(
PutConfigurationAggregatorError::OrganizationAllFeaturesNotEnabled(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutConfigurationAggregatorError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutConfigurationAggregatorError {
fn description(&self) -> &str {
match *self {
PutConfigurationAggregatorError::InvalidParameterValue(ref cause) => cause,
PutConfigurationAggregatorError::InvalidRole(ref cause) => cause,
PutConfigurationAggregatorError::LimitExceeded(ref cause) => cause,
PutConfigurationAggregatorError::NoAvailableOrganization(ref cause) => cause,
PutConfigurationAggregatorError::OrganizationAccessDenied(ref cause) => cause,
PutConfigurationAggregatorError::OrganizationAllFeaturesNotEnabled(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutConfigurationRecorderError {
InvalidConfigurationRecorderName(String),
InvalidRecordingGroup(String),
InvalidRole(String),
MaxNumberOfConfigurationRecordersExceeded(String),
}
impl PutConfigurationRecorderError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutConfigurationRecorderError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidConfigurationRecorderNameException" => {
return RusotoError::Service(
PutConfigurationRecorderError::InvalidConfigurationRecorderName(err.msg),
)
}
"InvalidRecordingGroupException" => {
return RusotoError::Service(
PutConfigurationRecorderError::InvalidRecordingGroup(err.msg),
)
}
"InvalidRoleException" => {
return RusotoError::Service(PutConfigurationRecorderError::InvalidRole(
err.msg,
))
}
"MaxNumberOfConfigurationRecordersExceededException" => {
return RusotoError::Service(
PutConfigurationRecorderError::MaxNumberOfConfigurationRecordersExceeded(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutConfigurationRecorderError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutConfigurationRecorderError {
fn description(&self) -> &str {
match *self {
PutConfigurationRecorderError::InvalidConfigurationRecorderName(ref cause) => cause,
PutConfigurationRecorderError::InvalidRecordingGroup(ref cause) => cause,
PutConfigurationRecorderError::InvalidRole(ref cause) => cause,
PutConfigurationRecorderError::MaxNumberOfConfigurationRecordersExceeded(ref cause) => {
cause
}
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutDeliveryChannelError {
InsufficientDeliveryPolicy(String),
InvalidDeliveryChannelName(String),
InvalidS3KeyPrefix(String),
InvalidSNSTopicARN(String),
MaxNumberOfDeliveryChannelsExceeded(String),
NoAvailableConfigurationRecorder(String),
NoSuchBucket(String),
}
impl PutDeliveryChannelError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutDeliveryChannelError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InsufficientDeliveryPolicyException" => {
return RusotoError::Service(
PutDeliveryChannelError::InsufficientDeliveryPolicy(err.msg),
)
}
"InvalidDeliveryChannelNameException" => {
return RusotoError::Service(
PutDeliveryChannelError::InvalidDeliveryChannelName(err.msg),
)
}
"InvalidS3KeyPrefixException" => {
return RusotoError::Service(PutDeliveryChannelError::InvalidS3KeyPrefix(
err.msg,
))
}
"InvalidSNSTopicARNException" => {
return RusotoError::Service(PutDeliveryChannelError::InvalidSNSTopicARN(
err.msg,
))
}
"MaxNumberOfDeliveryChannelsExceededException" => {
return RusotoError::Service(
PutDeliveryChannelError::MaxNumberOfDeliveryChannelsExceeded(err.msg),
)
}
"NoAvailableConfigurationRecorderException" => {
return RusotoError::Service(
PutDeliveryChannelError::NoAvailableConfigurationRecorder(err.msg),
)
}
"NoSuchBucketException" => {
return RusotoError::Service(PutDeliveryChannelError::NoSuchBucket(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutDeliveryChannelError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutDeliveryChannelError {
fn description(&self) -> &str {
match *self {
PutDeliveryChannelError::InsufficientDeliveryPolicy(ref cause) => cause,
PutDeliveryChannelError::InvalidDeliveryChannelName(ref cause) => cause,
PutDeliveryChannelError::InvalidS3KeyPrefix(ref cause) => cause,
PutDeliveryChannelError::InvalidSNSTopicARN(ref cause) => cause,
PutDeliveryChannelError::MaxNumberOfDeliveryChannelsExceeded(ref cause) => cause,
PutDeliveryChannelError::NoAvailableConfigurationRecorder(ref cause) => cause,
PutDeliveryChannelError::NoSuchBucket(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutEvaluationsError {
InvalidParameterValue(String),
InvalidResultToken(String),
NoSuchConfigRule(String),
}
impl PutEvaluationsError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutEvaluationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(PutEvaluationsError::InvalidParameterValue(
err.msg,
))
}
"InvalidResultTokenException" => {
return RusotoError::Service(PutEvaluationsError::InvalidResultToken(err.msg))
}
"NoSuchConfigRuleException" => {
return RusotoError::Service(PutEvaluationsError::NoSuchConfigRule(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutEvaluationsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutEvaluationsError {
fn description(&self) -> &str {
match *self {
PutEvaluationsError::InvalidParameterValue(ref cause) => cause,
PutEvaluationsError::InvalidResultToken(ref cause) => cause,
PutEvaluationsError::NoSuchConfigRule(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutRemediationConfigurationsError {
InsufficientPermissions(String),
InvalidParameterValue(String),
}
impl PutRemediationConfigurationsError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<PutRemediationConfigurationsError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InsufficientPermissionsException" => {
return RusotoError::Service(
PutRemediationConfigurationsError::InsufficientPermissions(err.msg),
)
}
"InvalidParameterValueException" => {
return RusotoError::Service(
PutRemediationConfigurationsError::InvalidParameterValue(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutRemediationConfigurationsError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutRemediationConfigurationsError {
fn description(&self) -> &str {
match *self {
PutRemediationConfigurationsError::InsufficientPermissions(ref cause) => cause,
PutRemediationConfigurationsError::InvalidParameterValue(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum PutRetentionConfigurationError {
InvalidParameterValue(String),
MaxNumberOfRetentionConfigurationsExceeded(String),
}
impl PutRetentionConfigurationError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<PutRetentionConfigurationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
PutRetentionConfigurationError::InvalidParameterValue(err.msg),
)
}
"MaxNumberOfRetentionConfigurationsExceededException" => {
return RusotoError::Service(
PutRetentionConfigurationError::MaxNumberOfRetentionConfigurationsExceeded(
err.msg,
),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for PutRetentionConfigurationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for PutRetentionConfigurationError {
fn description(&self) -> &str {
match *self {
PutRetentionConfigurationError::InvalidParameterValue(ref cause) => cause,
PutRetentionConfigurationError::MaxNumberOfRetentionConfigurationsExceeded(
ref cause,
) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum SelectResourceConfigError {
InvalidExpression(String),
InvalidLimit(String),
InvalidNextToken(String),
}
impl SelectResourceConfigError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<SelectResourceConfigError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidExpressionException" => {
return RusotoError::Service(SelectResourceConfigError::InvalidExpression(
err.msg,
))
}
"InvalidLimitException" => {
return RusotoError::Service(SelectResourceConfigError::InvalidLimit(err.msg))
}
"InvalidNextTokenException" => {
return RusotoError::Service(SelectResourceConfigError::InvalidNextToken(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for SelectResourceConfigError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for SelectResourceConfigError {
fn description(&self) -> &str {
match *self {
SelectResourceConfigError::InvalidExpression(ref cause) => cause,
SelectResourceConfigError::InvalidLimit(ref cause) => cause,
SelectResourceConfigError::InvalidNextToken(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum StartConfigRulesEvaluationError {
InvalidParameterValue(String),
LimitExceeded(String),
NoSuchConfigRule(String),
ResourceInUse(String),
}
impl StartConfigRulesEvaluationError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<StartConfigRulesEvaluationError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InvalidParameterValueException" => {
return RusotoError::Service(
StartConfigRulesEvaluationError::InvalidParameterValue(err.msg),
)
}
"LimitExceededException" => {
return RusotoError::Service(StartConfigRulesEvaluationError::LimitExceeded(
err.msg,
))
}
"NoSuchConfigRuleException" => {
return RusotoError::Service(StartConfigRulesEvaluationError::NoSuchConfigRule(
err.msg,
))
}
"ResourceInUseException" => {
return RusotoError::Service(StartConfigRulesEvaluationError::ResourceInUse(
err.msg,
))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for StartConfigRulesEvaluationError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for StartConfigRulesEvaluationError {
fn description(&self) -> &str {
match *self {
StartConfigRulesEvaluationError::InvalidParameterValue(ref cause) => cause,
StartConfigRulesEvaluationError::LimitExceeded(ref cause) => cause,
StartConfigRulesEvaluationError::NoSuchConfigRule(ref cause) => cause,
StartConfigRulesEvaluationError::ResourceInUse(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum StartConfigurationRecorderError {
NoAvailableDeliveryChannel(String),
NoSuchConfigurationRecorder(String),
}
impl StartConfigurationRecorderError {
pub fn from_response(
res: BufferedHttpResponse,
) -> RusotoError<StartConfigurationRecorderError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoAvailableDeliveryChannelException" => {
return RusotoError::Service(
StartConfigurationRecorderError::NoAvailableDeliveryChannel(err.msg),
)
}
"NoSuchConfigurationRecorderException" => {
return RusotoError::Service(
StartConfigurationRecorderError::NoSuchConfigurationRecorder(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for StartConfigurationRecorderError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for StartConfigurationRecorderError {
fn description(&self) -> &str {
match *self {
StartConfigurationRecorderError::NoAvailableDeliveryChannel(ref cause) => cause,
StartConfigurationRecorderError::NoSuchConfigurationRecorder(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum StartRemediationExecutionError {
InsufficientPermissions(String),
NoSuchRemediationConfiguration(String),
}
impl StartRemediationExecutionError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StartRemediationExecutionError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"InsufficientPermissionsException" => {
return RusotoError::Service(
StartRemediationExecutionError::InsufficientPermissions(err.msg),
)
}
"NoSuchRemediationConfigurationException" => {
return RusotoError::Service(
StartRemediationExecutionError::NoSuchRemediationConfiguration(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for StartRemediationExecutionError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for StartRemediationExecutionError {
fn description(&self) -> &str {
match *self {
StartRemediationExecutionError::InsufficientPermissions(ref cause) => cause,
StartRemediationExecutionError::NoSuchRemediationConfiguration(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum StopConfigurationRecorderError {
NoSuchConfigurationRecorder(String),
}
impl StopConfigurationRecorderError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<StopConfigurationRecorderError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"NoSuchConfigurationRecorderException" => {
return RusotoError::Service(
StopConfigurationRecorderError::NoSuchConfigurationRecorder(err.msg),
)
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for StopConfigurationRecorderError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for StopConfigurationRecorderError {
fn description(&self) -> &str {
match *self {
StopConfigurationRecorderError::NoSuchConfigurationRecorder(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum TagResourceError {
ResourceNotFound(String),
TooManyTags(String),
}
impl TagResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<TagResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ResourceNotFoundException" => {
return RusotoError::Service(TagResourceError::ResourceNotFound(err.msg))
}
"TooManyTagsException" => {
return RusotoError::Service(TagResourceError::TooManyTags(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for TagResourceError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for TagResourceError {
fn description(&self) -> &str {
match *self {
TagResourceError::ResourceNotFound(ref cause) => cause,
TagResourceError::TooManyTags(ref cause) => cause,
}
}
}
#[derive(Debug, PartialEq)]
pub enum UntagResourceError {
ResourceNotFound(String),
}
impl UntagResourceError {
pub fn from_response(res: BufferedHttpResponse) -> RusotoError<UntagResourceError> {
if let Some(err) = proto::json::Error::parse(&res) {
match err.typ.as_str() {
"ResourceNotFoundException" => {
return RusotoError::Service(UntagResourceError::ResourceNotFound(err.msg))
}
"ValidationException" => return RusotoError::Validation(err.msg),
_ => {}
}
}
return RusotoError::Unknown(res);
}
}
impl fmt::Display for UntagResourceError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}", self.description())
}
}
impl Error for UntagResourceError {
fn description(&self) -> &str {
match *self {
UntagResourceError::ResourceNotFound(ref cause) => cause,
}
}
}
pub trait ConfigService {
fn batch_get_aggregate_resource_config(
&self,
input: BatchGetAggregateResourceConfigRequest,
) -> RusotoFuture<BatchGetAggregateResourceConfigResponse, BatchGetAggregateResourceConfigError>;
fn batch_get_resource_config(
&self,
input: BatchGetResourceConfigRequest,
) -> RusotoFuture<BatchGetResourceConfigResponse, BatchGetResourceConfigError>;
fn delete_aggregation_authorization(
&self,
input: DeleteAggregationAuthorizationRequest,
) -> RusotoFuture<(), DeleteAggregationAuthorizationError>;
fn delete_config_rule(
&self,
input: DeleteConfigRuleRequest,
) -> RusotoFuture<(), DeleteConfigRuleError>;
fn delete_configuration_aggregator(
&self,
input: DeleteConfigurationAggregatorRequest,
) -> RusotoFuture<(), DeleteConfigurationAggregatorError>;
fn delete_configuration_recorder(
&self,
input: DeleteConfigurationRecorderRequest,
) -> RusotoFuture<(), DeleteConfigurationRecorderError>;
fn delete_delivery_channel(
&self,
input: DeleteDeliveryChannelRequest,
) -> RusotoFuture<(), DeleteDeliveryChannelError>;
fn delete_evaluation_results(
&self,
input: DeleteEvaluationResultsRequest,
) -> RusotoFuture<DeleteEvaluationResultsResponse, DeleteEvaluationResultsError>;
fn delete_pending_aggregation_request(
&self,
input: DeletePendingAggregationRequestRequest,
) -> RusotoFuture<(), DeletePendingAggregationRequestError>;
fn delete_remediation_configuration(
&self,
input: DeleteRemediationConfigurationRequest,
) -> RusotoFuture<DeleteRemediationConfigurationResponse, DeleteRemediationConfigurationError>;
fn delete_retention_configuration(
&self,
input: DeleteRetentionConfigurationRequest,
) -> RusotoFuture<(), DeleteRetentionConfigurationError>;
fn deliver_config_snapshot(
&self,
input: DeliverConfigSnapshotRequest,
) -> RusotoFuture<DeliverConfigSnapshotResponse, DeliverConfigSnapshotError>;
fn describe_aggregate_compliance_by_config_rules(
&self,
input: DescribeAggregateComplianceByConfigRulesRequest,
) -> RusotoFuture<
DescribeAggregateComplianceByConfigRulesResponse,
DescribeAggregateComplianceByConfigRulesError,
>;
fn describe_aggregation_authorizations(
&self,
input: DescribeAggregationAuthorizationsRequest,
) -> RusotoFuture<
DescribeAggregationAuthorizationsResponse,
DescribeAggregationAuthorizationsError,
>;
fn describe_compliance_by_config_rule(
&self,
input: DescribeComplianceByConfigRuleRequest,
) -> RusotoFuture<DescribeComplianceByConfigRuleResponse, DescribeComplianceByConfigRuleError>;
fn describe_compliance_by_resource(
&self,
input: DescribeComplianceByResourceRequest,
) -> RusotoFuture<DescribeComplianceByResourceResponse, DescribeComplianceByResourceError>;
fn describe_config_rule_evaluation_status(
&self,
input: DescribeConfigRuleEvaluationStatusRequest,
) -> RusotoFuture<
DescribeConfigRuleEvaluationStatusResponse,
DescribeConfigRuleEvaluationStatusError,
>;
fn describe_config_rules(
&self,
input: DescribeConfigRulesRequest,
) -> RusotoFuture<DescribeConfigRulesResponse, DescribeConfigRulesError>;
fn describe_configuration_aggregator_sources_status(
&self,
input: DescribeConfigurationAggregatorSourcesStatusRequest,
) -> RusotoFuture<
DescribeConfigurationAggregatorSourcesStatusResponse,
DescribeConfigurationAggregatorSourcesStatusError,
>;
fn describe_configuration_aggregators(
&self,
input: DescribeConfigurationAggregatorsRequest,
) -> RusotoFuture<DescribeConfigurationAggregatorsResponse, DescribeConfigurationAggregatorsError>;
fn describe_configuration_recorder_status(
&self,
input: DescribeConfigurationRecorderStatusRequest,
) -> RusotoFuture<
DescribeConfigurationRecorderStatusResponse,
DescribeConfigurationRecorderStatusError,
>;
fn describe_configuration_recorders(
&self,
input: DescribeConfigurationRecordersRequest,
) -> RusotoFuture<DescribeConfigurationRecordersResponse, DescribeConfigurationRecordersError>;
fn describe_delivery_channel_status(
&self,
input: DescribeDeliveryChannelStatusRequest,
) -> RusotoFuture<DescribeDeliveryChannelStatusResponse, DescribeDeliveryChannelStatusError>;
fn describe_delivery_channels(
&self,
input: DescribeDeliveryChannelsRequest,
) -> RusotoFuture<DescribeDeliveryChannelsResponse, DescribeDeliveryChannelsError>;
fn describe_pending_aggregation_requests(
&self,
input: DescribePendingAggregationRequestsRequest,
) -> RusotoFuture<
DescribePendingAggregationRequestsResponse,
DescribePendingAggregationRequestsError,
>;
fn describe_remediation_configurations(
&self,
input: DescribeRemediationConfigurationsRequest,
) -> RusotoFuture<
DescribeRemediationConfigurationsResponse,
DescribeRemediationConfigurationsError,
>;
fn describe_remediation_execution_status(
&self,
input: DescribeRemediationExecutionStatusRequest,
) -> RusotoFuture<
DescribeRemediationExecutionStatusResponse,
DescribeRemediationExecutionStatusError,
>;
fn describe_retention_configurations(
&self,
input: DescribeRetentionConfigurationsRequest,
) -> RusotoFuture<DescribeRetentionConfigurationsResponse, DescribeRetentionConfigurationsError>;
fn get_aggregate_compliance_details_by_config_rule(
&self,
input: GetAggregateComplianceDetailsByConfigRuleRequest,
) -> RusotoFuture<
GetAggregateComplianceDetailsByConfigRuleResponse,
GetAggregateComplianceDetailsByConfigRuleError,
>;
fn get_aggregate_config_rule_compliance_summary(
&self,
input: GetAggregateConfigRuleComplianceSummaryRequest,
) -> RusotoFuture<
GetAggregateConfigRuleComplianceSummaryResponse,
GetAggregateConfigRuleComplianceSummaryError,
>;
fn get_aggregate_discovered_resource_counts(
&self,
input: GetAggregateDiscoveredResourceCountsRequest,
) -> RusotoFuture<
GetAggregateDiscoveredResourceCountsResponse,
GetAggregateDiscoveredResourceCountsError,
>;
fn get_aggregate_resource_config(
&self,
input: GetAggregateResourceConfigRequest,
) -> RusotoFuture<GetAggregateResourceConfigResponse, GetAggregateResourceConfigError>;
fn get_compliance_details_by_config_rule(
&self,
input: GetComplianceDetailsByConfigRuleRequest,
) -> RusotoFuture<GetComplianceDetailsByConfigRuleResponse, GetComplianceDetailsByConfigRuleError>;
fn get_compliance_details_by_resource(
&self,
input: GetComplianceDetailsByResourceRequest,
) -> RusotoFuture<GetComplianceDetailsByResourceResponse, GetComplianceDetailsByResourceError>;
fn get_compliance_summary_by_config_rule(
&self,
) -> RusotoFuture<GetComplianceSummaryByConfigRuleResponse, GetComplianceSummaryByConfigRuleError>;
fn get_compliance_summary_by_resource_type(
&self,
input: GetComplianceSummaryByResourceTypeRequest,
) -> RusotoFuture<
GetComplianceSummaryByResourceTypeResponse,
GetComplianceSummaryByResourceTypeError,
>;
fn get_discovered_resource_counts(
&self,
input: GetDiscoveredResourceCountsRequest,
) -> RusotoFuture<GetDiscoveredResourceCountsResponse, GetDiscoveredResourceCountsError>;
fn get_resource_config_history(
&self,
input: GetResourceConfigHistoryRequest,
) -> RusotoFuture<GetResourceConfigHistoryResponse, GetResourceConfigHistoryError>;
fn list_aggregate_discovered_resources(
&self,
input: ListAggregateDiscoveredResourcesRequest,
) -> RusotoFuture<ListAggregateDiscoveredResourcesResponse, ListAggregateDiscoveredResourcesError>;
fn list_discovered_resources(
&self,
input: ListDiscoveredResourcesRequest,
) -> RusotoFuture<ListDiscoveredResourcesResponse, ListDiscoveredResourcesError>;
fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> RusotoFuture<ListTagsForResourceResponse, ListTagsForResourceError>;
fn put_aggregation_authorization(
&self,
input: PutAggregationAuthorizationRequest,
) -> RusotoFuture<PutAggregationAuthorizationResponse, PutAggregationAuthorizationError>;
fn put_config_rule(&self, input: PutConfigRuleRequest) -> RusotoFuture<(), PutConfigRuleError>;
fn put_configuration_aggregator(
&self,
input: PutConfigurationAggregatorRequest,
) -> RusotoFuture<PutConfigurationAggregatorResponse, PutConfigurationAggregatorError>;
fn put_configuration_recorder(
&self,
input: PutConfigurationRecorderRequest,
) -> RusotoFuture<(), PutConfigurationRecorderError>;
fn put_delivery_channel(
&self,
input: PutDeliveryChannelRequest,
) -> RusotoFuture<(), PutDeliveryChannelError>;
fn put_evaluations(
&self,
input: PutEvaluationsRequest,
) -> RusotoFuture<PutEvaluationsResponse, PutEvaluationsError>;
fn put_remediation_configurations(
&self,
input: PutRemediationConfigurationsRequest,
) -> RusotoFuture<PutRemediationConfigurationsResponse, PutRemediationConfigurationsError>;
fn put_retention_configuration(
&self,
input: PutRetentionConfigurationRequest,
) -> RusotoFuture<PutRetentionConfigurationResponse, PutRetentionConfigurationError>;
fn select_resource_config(
&self,
input: SelectResourceConfigRequest,
) -> RusotoFuture<SelectResourceConfigResponse, SelectResourceConfigError>;
fn start_config_rules_evaluation(
&self,
input: StartConfigRulesEvaluationRequest,
) -> RusotoFuture<StartConfigRulesEvaluationResponse, StartConfigRulesEvaluationError>;
fn start_configuration_recorder(
&self,
input: StartConfigurationRecorderRequest,
) -> RusotoFuture<(), StartConfigurationRecorderError>;
fn start_remediation_execution(
&self,
input: StartRemediationExecutionRequest,
) -> RusotoFuture<StartRemediationExecutionResponse, StartRemediationExecutionError>;
fn stop_configuration_recorder(
&self,
input: StopConfigurationRecorderRequest,
) -> RusotoFuture<(), StopConfigurationRecorderError>;
fn tag_resource(&self, input: TagResourceRequest) -> RusotoFuture<(), TagResourceError>;
fn untag_resource(&self, input: UntagResourceRequest) -> RusotoFuture<(), UntagResourceError>;
}
#[derive(Clone)]
pub struct ConfigServiceClient {
client: Client,
region: region::Region,
}
impl ConfigServiceClient {
pub fn new(region: region::Region) -> ConfigServiceClient {
ConfigServiceClient {
client: Client::shared(),
region,
}
}
pub fn new_with<P, D>(
request_dispatcher: D,
credentials_provider: P,
region: region::Region,
) -> ConfigServiceClient
where
P: ProvideAwsCredentials + Send + Sync + 'static,
P::Future: Send,
D: DispatchSignedRequest + Send + Sync + 'static,
D::Future: Send,
{
ConfigServiceClient {
client: Client::new_with(credentials_provider, request_dispatcher),
region,
}
}
}
impl ConfigService for ConfigServiceClient {
fn batch_get_aggregate_resource_config(
&self,
input: BatchGetAggregateResourceConfigRequest,
) -> RusotoFuture<BatchGetAggregateResourceConfigResponse, BatchGetAggregateResourceConfigError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.BatchGetAggregateResourceConfig",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<BatchGetAggregateResourceConfigResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(BatchGetAggregateResourceConfigError::from_response(
response,
))
}))
}
})
}
fn batch_get_resource_config(
&self,
input: BatchGetResourceConfigRequest,
) -> RusotoFuture<BatchGetResourceConfigResponse, BatchGetResourceConfigError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.BatchGetResourceConfig");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<BatchGetResourceConfigResponse, _>()
}))
} else {
Box::new(
response.buffer().from_err().and_then(|response| {
Err(BatchGetResourceConfigError::from_response(response))
}),
)
}
})
}
fn delete_aggregation_authorization(
&self,
input: DeleteAggregationAuthorizationRequest,
) -> RusotoFuture<(), DeleteAggregationAuthorizationError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeleteAggregationAuthorization",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeleteAggregationAuthorizationError::from_response(response))
}))
}
})
}
fn delete_config_rule(
&self,
input: DeleteConfigRuleRequest,
) -> RusotoFuture<(), DeleteConfigRuleError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.DeleteConfigRule");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(
response
.buffer()
.from_err()
.and_then(|response| Err(DeleteConfigRuleError::from_response(response))),
)
}
})
}
fn delete_configuration_aggregator(
&self,
input: DeleteConfigurationAggregatorRequest,
) -> RusotoFuture<(), DeleteConfigurationAggregatorError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeleteConfigurationAggregator",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeleteConfigurationAggregatorError::from_response(response))
}))
}
})
}
fn delete_configuration_recorder(
&self,
input: DeleteConfigurationRecorderRequest,
) -> RusotoFuture<(), DeleteConfigurationRecorderError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeleteConfigurationRecorder",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeleteConfigurationRecorderError::from_response(response))
}))
}
})
}
fn delete_delivery_channel(
&self,
input: DeleteDeliveryChannelRequest,
) -> RusotoFuture<(), DeleteDeliveryChannelError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.DeleteDeliveryChannel");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(
response.buffer().from_err().and_then(|response| {
Err(DeleteDeliveryChannelError::from_response(response))
}),
)
}
})
}
fn delete_evaluation_results(
&self,
input: DeleteEvaluationResultsRequest,
) -> RusotoFuture<DeleteEvaluationResultsResponse, DeleteEvaluationResultsError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeleteEvaluationResults",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteEvaluationResultsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeleteEvaluationResultsError::from_response(response))
}))
}
})
}
fn delete_pending_aggregation_request(
&self,
input: DeletePendingAggregationRequestRequest,
) -> RusotoFuture<(), DeletePendingAggregationRequestError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeletePendingAggregationRequest",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeletePendingAggregationRequestError::from_response(
response,
))
}))
}
})
}
fn delete_remediation_configuration(
&self,
input: DeleteRemediationConfigurationRequest,
) -> RusotoFuture<DeleteRemediationConfigurationResponse, DeleteRemediationConfigurationError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeleteRemediationConfiguration",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DeleteRemediationConfigurationResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeleteRemediationConfigurationError::from_response(response))
}))
}
})
}
fn delete_retention_configuration(
&self,
input: DeleteRetentionConfigurationRequest,
) -> RusotoFuture<(), DeleteRetentionConfigurationError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DeleteRetentionConfiguration",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DeleteRetentionConfigurationError::from_response(response))
}))
}
})
}
fn deliver_config_snapshot(
&self,
input: DeliverConfigSnapshotRequest,
) -> RusotoFuture<DeliverConfigSnapshotResponse, DeliverConfigSnapshotError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.DeliverConfigSnapshot");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DeliverConfigSnapshotResponse, _>()
}))
} else {
Box::new(
response.buffer().from_err().and_then(|response| {
Err(DeliverConfigSnapshotError::from_response(response))
}),
)
}
})
}
fn describe_aggregate_compliance_by_config_rules(
&self,
input: DescribeAggregateComplianceByConfigRulesRequest,
) -> RusotoFuture<
DescribeAggregateComplianceByConfigRulesResponse,
DescribeAggregateComplianceByConfigRulesError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeAggregateComplianceByConfigRules",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAggregateComplianceByConfigRulesResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeAggregateComplianceByConfigRulesError::from_response(response))
}))
}
})
}
fn describe_aggregation_authorizations(
&self,
input: DescribeAggregationAuthorizationsRequest,
) -> RusotoFuture<
DescribeAggregationAuthorizationsResponse,
DescribeAggregationAuthorizationsError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeAggregationAuthorizations",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeAggregationAuthorizationsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeAggregationAuthorizationsError::from_response(
response,
))
}))
}
})
}
fn describe_compliance_by_config_rule(
&self,
input: DescribeComplianceByConfigRuleRequest,
) -> RusotoFuture<DescribeComplianceByConfigRuleResponse, DescribeComplianceByConfigRuleError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeComplianceByConfigRule",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeComplianceByConfigRuleResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeComplianceByConfigRuleError::from_response(response))
}))
}
})
}
fn describe_compliance_by_resource(
&self,
input: DescribeComplianceByResourceRequest,
) -> RusotoFuture<DescribeComplianceByResourceResponse, DescribeComplianceByResourceError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeComplianceByResource",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeComplianceByResourceResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeComplianceByResourceError::from_response(response))
}))
}
})
}
fn describe_config_rule_evaluation_status(
&self,
input: DescribeConfigRuleEvaluationStatusRequest,
) -> RusotoFuture<
DescribeConfigRuleEvaluationStatusResponse,
DescribeConfigRuleEvaluationStatusError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeConfigRuleEvaluationStatus",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeConfigRuleEvaluationStatusResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeConfigRuleEvaluationStatusError::from_response(
response,
))
}))
}
})
}
fn describe_config_rules(
&self,
input: DescribeConfigRulesRequest,
) -> RusotoFuture<DescribeConfigRulesResponse, DescribeConfigRulesError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.DescribeConfigRules");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeConfigRulesResponse, _>()
}))
} else {
Box::new(
response.buffer().from_err().and_then(|response| {
Err(DescribeConfigRulesError::from_response(response))
}),
)
}
})
}
fn describe_configuration_aggregator_sources_status(
&self,
input: DescribeConfigurationAggregatorSourcesStatusRequest,
) -> RusotoFuture<
DescribeConfigurationAggregatorSourcesStatusResponse,
DescribeConfigurationAggregatorSourcesStatusError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeConfigurationAggregatorSourcesStatus",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response).deserialize::<DescribeConfigurationAggregatorSourcesStatusResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeConfigurationAggregatorSourcesStatusError::from_response(response))
}))
}
})
}
fn describe_configuration_aggregators(
&self,
input: DescribeConfigurationAggregatorsRequest,
) -> RusotoFuture<DescribeConfigurationAggregatorsResponse, DescribeConfigurationAggregatorsError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeConfigurationAggregators",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeConfigurationAggregatorsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeConfigurationAggregatorsError::from_response(
response,
))
}))
}
})
}
fn describe_configuration_recorder_status(
&self,
input: DescribeConfigurationRecorderStatusRequest,
) -> RusotoFuture<
DescribeConfigurationRecorderStatusResponse,
DescribeConfigurationRecorderStatusError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeConfigurationRecorderStatus",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeConfigurationRecorderStatusResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeConfigurationRecorderStatusError::from_response(
response,
))
}))
}
})
}
fn describe_configuration_recorders(
&self,
input: DescribeConfigurationRecordersRequest,
) -> RusotoFuture<DescribeConfigurationRecordersResponse, DescribeConfigurationRecordersError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeConfigurationRecorders",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeConfigurationRecordersResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeConfigurationRecordersError::from_response(response))
}))
}
})
}
fn describe_delivery_channel_status(
&self,
input: DescribeDeliveryChannelStatusRequest,
) -> RusotoFuture<DescribeDeliveryChannelStatusResponse, DescribeDeliveryChannelStatusError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeDeliveryChannelStatus",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeDeliveryChannelStatusResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeDeliveryChannelStatusError::from_response(response))
}))
}
})
}
fn describe_delivery_channels(
&self,
input: DescribeDeliveryChannelsRequest,
) -> RusotoFuture<DescribeDeliveryChannelsResponse, DescribeDeliveryChannelsError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeDeliveryChannels",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeDeliveryChannelsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeDeliveryChannelsError::from_response(response))
}))
}
})
}
fn describe_pending_aggregation_requests(
&self,
input: DescribePendingAggregationRequestsRequest,
) -> RusotoFuture<
DescribePendingAggregationRequestsResponse,
DescribePendingAggregationRequestsError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribePendingAggregationRequests",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribePendingAggregationRequestsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribePendingAggregationRequestsError::from_response(
response,
))
}))
}
})
}
fn describe_remediation_configurations(
&self,
input: DescribeRemediationConfigurationsRequest,
) -> RusotoFuture<
DescribeRemediationConfigurationsResponse,
DescribeRemediationConfigurationsError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeRemediationConfigurations",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeRemediationConfigurationsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeRemediationConfigurationsError::from_response(
response,
))
}))
}
})
}
fn describe_remediation_execution_status(
&self,
input: DescribeRemediationExecutionStatusRequest,
) -> RusotoFuture<
DescribeRemediationExecutionStatusResponse,
DescribeRemediationExecutionStatusError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeRemediationExecutionStatus",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeRemediationExecutionStatusResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeRemediationExecutionStatusError::from_response(
response,
))
}))
}
})
}
fn describe_retention_configurations(
&self,
input: DescribeRetentionConfigurationsRequest,
) -> RusotoFuture<DescribeRetentionConfigurationsResponse, DescribeRetentionConfigurationsError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.DescribeRetentionConfigurations",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<DescribeRetentionConfigurationsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(DescribeRetentionConfigurationsError::from_response(
response,
))
}))
}
})
}
fn get_aggregate_compliance_details_by_config_rule(
&self,
input: GetAggregateComplianceDetailsByConfigRuleRequest,
) -> RusotoFuture<
GetAggregateComplianceDetailsByConfigRuleResponse,
GetAggregateComplianceDetailsByConfigRuleError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetAggregateComplianceDetailsByConfigRule",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetAggregateComplianceDetailsByConfigRuleResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetAggregateComplianceDetailsByConfigRuleError::from_response(response))
}))
}
})
}
fn get_aggregate_config_rule_compliance_summary(
&self,
input: GetAggregateConfigRuleComplianceSummaryRequest,
) -> RusotoFuture<
GetAggregateConfigRuleComplianceSummaryResponse,
GetAggregateConfigRuleComplianceSummaryError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetAggregateConfigRuleComplianceSummary",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetAggregateConfigRuleComplianceSummaryResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetAggregateConfigRuleComplianceSummaryError::from_response(
response,
))
}))
}
})
}
fn get_aggregate_discovered_resource_counts(
&self,
input: GetAggregateDiscoveredResourceCountsRequest,
) -> RusotoFuture<
GetAggregateDiscoveredResourceCountsResponse,
GetAggregateDiscoveredResourceCountsError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetAggregateDiscoveredResourceCounts",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetAggregateDiscoveredResourceCountsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetAggregateDiscoveredResourceCountsError::from_response(
response,
))
}))
}
})
}
fn get_aggregate_resource_config(
&self,
input: GetAggregateResourceConfigRequest,
) -> RusotoFuture<GetAggregateResourceConfigResponse, GetAggregateResourceConfigError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetAggregateResourceConfig",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetAggregateResourceConfigResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetAggregateResourceConfigError::from_response(response))
}))
}
})
}
fn get_compliance_details_by_config_rule(
&self,
input: GetComplianceDetailsByConfigRuleRequest,
) -> RusotoFuture<GetComplianceDetailsByConfigRuleResponse, GetComplianceDetailsByConfigRuleError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetComplianceDetailsByConfigRule",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetComplianceDetailsByConfigRuleResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetComplianceDetailsByConfigRuleError::from_response(
response,
))
}))
}
})
}
fn get_compliance_details_by_resource(
&self,
input: GetComplianceDetailsByResourceRequest,
) -> RusotoFuture<GetComplianceDetailsByResourceResponse, GetComplianceDetailsByResourceError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetComplianceDetailsByResource",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetComplianceDetailsByResourceResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetComplianceDetailsByResourceError::from_response(response))
}))
}
})
}
fn get_compliance_summary_by_config_rule(
&self,
) -> RusotoFuture<GetComplianceSummaryByConfigRuleResponse, GetComplianceSummaryByConfigRuleError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetComplianceSummaryByConfigRule",
);
request.set_payload(Some(bytes::Bytes::from_static(b"{}")));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetComplianceSummaryByConfigRuleResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetComplianceSummaryByConfigRuleError::from_response(
response,
))
}))
}
})
}
fn get_compliance_summary_by_resource_type(
&self,
input: GetComplianceSummaryByResourceTypeRequest,
) -> RusotoFuture<
GetComplianceSummaryByResourceTypeResponse,
GetComplianceSummaryByResourceTypeError,
> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetComplianceSummaryByResourceType",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetComplianceSummaryByResourceTypeResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetComplianceSummaryByResourceTypeError::from_response(
response,
))
}))
}
})
}
fn get_discovered_resource_counts(
&self,
input: GetDiscoveredResourceCountsRequest,
) -> RusotoFuture<GetDiscoveredResourceCountsResponse, GetDiscoveredResourceCountsError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetDiscoveredResourceCounts",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetDiscoveredResourceCountsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetDiscoveredResourceCountsError::from_response(response))
}))
}
})
}
fn get_resource_config_history(
&self,
input: GetResourceConfigHistoryRequest,
) -> RusotoFuture<GetResourceConfigHistoryResponse, GetResourceConfigHistoryError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.GetResourceConfigHistory",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<GetResourceConfigHistoryResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(GetResourceConfigHistoryError::from_response(response))
}))
}
})
}
fn list_aggregate_discovered_resources(
&self,
input: ListAggregateDiscoveredResourcesRequest,
) -> RusotoFuture<ListAggregateDiscoveredResourcesResponse, ListAggregateDiscoveredResourcesError>
{
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.ListAggregateDiscoveredResources",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<ListAggregateDiscoveredResourcesResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(ListAggregateDiscoveredResourcesError::from_response(
response,
))
}))
}
})
}
fn list_discovered_resources(
&self,
input: ListDiscoveredResourcesRequest,
) -> RusotoFuture<ListDiscoveredResourcesResponse, ListDiscoveredResourcesError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.ListDiscoveredResources",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<ListDiscoveredResourcesResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(ListDiscoveredResourcesError::from_response(response))
}))
}
})
}
fn list_tags_for_resource(
&self,
input: ListTagsForResourceRequest,
) -> RusotoFuture<ListTagsForResourceResponse, ListTagsForResourceError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.ListTagsForResource");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<ListTagsForResourceResponse, _>()
}))
} else {
Box::new(
response.buffer().from_err().and_then(|response| {
Err(ListTagsForResourceError::from_response(response))
}),
)
}
})
}
fn put_aggregation_authorization(
&self,
input: PutAggregationAuthorizationRequest,
) -> RusotoFuture<PutAggregationAuthorizationResponse, PutAggregationAuthorizationError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.PutAggregationAuthorization",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<PutAggregationAuthorizationResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(PutAggregationAuthorizationError::from_response(response))
}))
}
})
}
fn put_config_rule(&self, input: PutConfigRuleRequest) -> RusotoFuture<(), PutConfigRuleError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.PutConfigRule");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(
response
.buffer()
.from_err()
.and_then(|response| Err(PutConfigRuleError::from_response(response))),
)
}
})
}
fn put_configuration_aggregator(
&self,
input: PutConfigurationAggregatorRequest,
) -> RusotoFuture<PutConfigurationAggregatorResponse, PutConfigurationAggregatorError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.PutConfigurationAggregator",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<PutConfigurationAggregatorResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(PutConfigurationAggregatorError::from_response(response))
}))
}
})
}
fn put_configuration_recorder(
&self,
input: PutConfigurationRecorderRequest,
) -> RusotoFuture<(), PutConfigurationRecorderError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.PutConfigurationRecorder",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(PutConfigurationRecorderError::from_response(response))
}))
}
})
}
fn put_delivery_channel(
&self,
input: PutDeliveryChannelRequest,
) -> RusotoFuture<(), PutDeliveryChannelError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.PutDeliveryChannel");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(
response
.buffer()
.from_err()
.and_then(|response| Err(PutDeliveryChannelError::from_response(response))),
)
}
})
}
fn put_evaluations(
&self,
input: PutEvaluationsRequest,
) -> RusotoFuture<PutEvaluationsResponse, PutEvaluationsError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.PutEvaluations");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<PutEvaluationsResponse, _>()
}))
} else {
Box::new(
response
.buffer()
.from_err()
.and_then(|response| Err(PutEvaluationsError::from_response(response))),
)
}
})
}
fn put_remediation_configurations(
&self,
input: PutRemediationConfigurationsRequest,
) -> RusotoFuture<PutRemediationConfigurationsResponse, PutRemediationConfigurationsError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.PutRemediationConfigurations",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<PutRemediationConfigurationsResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(PutRemediationConfigurationsError::from_response(response))
}))
}
})
}
fn put_retention_configuration(
&self,
input: PutRetentionConfigurationRequest,
) -> RusotoFuture<PutRetentionConfigurationResponse, PutRetentionConfigurationError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.PutRetentionConfiguration",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<PutRetentionConfigurationResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(PutRetentionConfigurationError::from_response(response))
}))
}
})
}
fn select_resource_config(
&self,
input: SelectResourceConfigRequest,
) -> RusotoFuture<SelectResourceConfigResponse, SelectResourceConfigError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.SelectResourceConfig");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<SelectResourceConfigResponse, _>()
}))
} else {
Box::new(
response.buffer().from_err().and_then(|response| {
Err(SelectResourceConfigError::from_response(response))
}),
)
}
})
}
fn start_config_rules_evaluation(
&self,
input: StartConfigRulesEvaluationRequest,
) -> RusotoFuture<StartConfigRulesEvaluationResponse, StartConfigRulesEvaluationError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.StartConfigRulesEvaluation",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<StartConfigRulesEvaluationResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(StartConfigRulesEvaluationError::from_response(response))
}))
}
})
}
fn start_configuration_recorder(
&self,
input: StartConfigurationRecorderRequest,
) -> RusotoFuture<(), StartConfigurationRecorderError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.StartConfigurationRecorder",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(StartConfigurationRecorderError::from_response(response))
}))
}
})
}
fn start_remediation_execution(
&self,
input: StartRemediationExecutionRequest,
) -> RusotoFuture<StartRemediationExecutionResponse, StartRemediationExecutionError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.StartRemediationExecution",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(response.buffer().from_err().and_then(|response| {
proto::json::ResponsePayload::new(&response)
.deserialize::<StartRemediationExecutionResponse, _>()
}))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(StartRemediationExecutionError::from_response(response))
}))
}
})
}
fn stop_configuration_recorder(
&self,
input: StopConfigurationRecorderRequest,
) -> RusotoFuture<(), StopConfigurationRecorderError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header(
"x-amz-target",
"StarlingDoveService.StopConfigurationRecorder",
);
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(response.buffer().from_err().and_then(|response| {
Err(StopConfigurationRecorderError::from_response(response))
}))
}
})
}
fn tag_resource(&self, input: TagResourceRequest) -> RusotoFuture<(), TagResourceError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.TagResource");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(
response
.buffer()
.from_err()
.and_then(|response| Err(TagResourceError::from_response(response))),
)
}
})
}
fn untag_resource(&self, input: UntagResourceRequest) -> RusotoFuture<(), UntagResourceError> {
let mut request = SignedRequest::new("POST", "config", &self.region, "/");
request.set_content_type("application/x-amz-json-1.1".to_owned());
request.add_header("x-amz-target", "StarlingDoveService.UntagResource");
let encoded = serde_json::to_string(&input).unwrap();
request.set_payload(Some(encoded));
self.client.sign_and_dispatch(request, |response| {
if response.status.is_success() {
Box::new(future::ok(::std::mem::drop(response)))
} else {
Box::new(
response
.buffer()
.from_err()
.and_then(|response| Err(UntagResourceError::from_response(response))),
)
}
})
}
}